在Racket中,大爆炸中是否可能有多个事件处理程序?

在Racket中,大爆炸中是否可能有多个事件处理程序?,racket,eventhandler,Racket,Eventhandler,我想在每个滴答声中做两件不同的事情。在大爆炸环境中是否可能有多个即时事件处理程序 这就是我想做的: (big-bang world (on-draw show-world) (on-tick event1 event2 1)) 或 这两种方法都不允许。有办法做到这一点吗 谢谢。这是什么意思 例如,假设 ;; A World is a Nat (a natural number). 下面是两个勾号处理程序: ;; advance-by-one : World -> World

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

这就是我想做的:

(big-bang world

  (on-draw show-world)

  (on-tick event1 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))
;;一人前进:世界->世界
(定义(提前一个w)
(增补1 w))
;; 10点重置:世界->世界
(定义(在10 w时重置)
(如果(
如果当前世界是
9
,那么您希望下一个世界是什么?(我能想出两个似是而非的答案,你得挑一个。)

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


(如果您已经到达ISL:)如果您有三个或四个或十个处理程序,您想一起编写呢?您能否设计一个函数,该函数接受处理程序列表并生成单个处理程序函数?

两个不同的勾号处理程序函数是否处理相同的数据?如果
world
是一个
world
,那么这两个处理函数都是
[world->world]
函数吗?当然。让我们说是的。我已经找到了一种方法,通过向结构中添加更多元素来实现这一点,但它确实很混乱。顺便说一句,我对球拍很陌生,所以请原谅我不懂所有的行话。我正试图为我的孙女制作一系列圣诞节游戏。我正在努力解决以下问题:我想要一个图像(一个篮子)随着鼠标的posn-x移动,我想要一个事件发生在篮子与另一个图像(一只下落的蝴蝶)位于同一位置时,鼠标按钮被点击。Ryan,我会说0。最初,这是一个关于滴答声的问题,因为事情在时间上移动,但我无法理解,现在我尝试用鼠标来做。Ryan问,“你能设计一个函数,它接受一个处理程序列表并生成一个处理程序函数吗?”我想这就是我要问的。编辑:仍然希望有人能够提供一个函数示例,该函数接受处理程序列表并生成单个处理程序函数。谢谢
;; 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))