在球拍中,有可能在大爆炸中有多个事件处理程序吗? [英] In Racket, is it possible to have multiple event-handlers in big-bang?

查看:15
本文介绍了在球拍中,有可能在大爆炸中有多个事件处理程序吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在每个滴答声中做两件不同的事情。在大爆炸环境中可以有多个即时事件处理程序吗?

这是我想做的:

(big-bang world

  (on-draw show-world)

  (on-tick event1 event2 1))

(big-bang world

  (on-draw show-world)

  (on-tick event1 1)

  (on-tick event2 1))

这两种方法都不允许。有办法做到这一点吗?

谢谢您。

推荐答案

表示什么?

例如,假设

;; A World is a Nat (a natural number).

下面是两个刻度处理程序:

;; advance-by-one : World -> World
(define (advance-by-one w)
  (add1 w))

;; reset-at-ten : World -> World
(define (reset-at-ten w)
  (if (< w 10) w 0))

如果当前World是9,那么您期望下一个World是什么?(我能想出两个似是而非的答案,你必须选一个。)

是否可以定义另一个具有您想要的含义的函数,并将该(单个)函数用作记号处理程序?(提示:您应该使用两个现有的处理程序函数,而不是尝试将它们的定义合并到一个大函数中。)

(如果您已经到达ISL:)如果您有三个、四个或十个您想要组合在一起的处理程序怎么办?您能设计一个接受处理程序列表并生成单个处理程序函数的函数吗?

这篇关于在球拍中,有可能在大爆炸中有多个事件处理程序吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆