В Racket возможно ли иметь несколько обработчиков событий в режиме большого взрыва? - PullRequest
0 голосов
/ 07 декабря 2018

Я хочу делать две разные вещи на каждом тике.Можно ли иметь несколько обработчиков событий на галочке в среде большого взрыва?

Это то, что я хотел бы сделать:

(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))

Ни один из этих методов не разрешен.Есть ли способ сделать это?

Спасибо.

1 Ответ

0 голосов
/ 08 декабря 2018

Что бы это значило?

Например, предположим, что

;; 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))

Если текущий Мир9, тогда что вы ожидаете от следующего мира?(Я могу придумать два вероятных ответа; вам нужно выбрать один.)

Можете ли вы определить другую функцию, которая имеет значение, которое вы хотите, и просто использовать эту (единственную) функцию в качестве обработчика тиков?(Подсказка: вы должны использовать две существующие функции-обработчики, а не пытаться объединить их определения в одну большую функцию.)

(Если вы сделали это в ISL :) Что делать, если у вас было три обработчика или четыреили десять, что ты хотел сочинить вместе?Можете ли вы разработать функцию, которая принимает список обработчиков и производит одну функцию обработчика?

...