В работе Конала Эллиотта Событие определяется как
type Event a = [(T , a)] -- for non-decreasing times
. Это позволяет использовать более одного события одновременно.В моей библиотеке FRP я хотел бы реализовать функцию:
sample :: Reactive a -> Future () -> Future a
Это будет образец реактива, когда горит будущее.Так как реактив может иметь более одного значения в то время, когда будущее срабатывает, как мне его реализовать?Всегда использовать последний, первый или непустой список?
Вот как должна вести себя функция семпла:
sample
(MkReactive "a"
(MkEvent
(MkFuture 2
(MkReactive "b" ...)
)
)
(MkFuture 1 ())
= MkFuture 1 "a"