我正在自学 FRP 和 Reactive-banana,同时编写我希望对跟随我的人更有用的教程。你可以在这里查看我的教程进度。
我一直在尝试使用事件来实现简单的哔哔声示例。我知道我需要做这样的事情:
reactimate $ fmap (uncurry playNote) myEvent
在我的NetworkDescription
,但我不知道如何让网络重复做同样的事情,或者做一次。理想情况下,我正在寻找这样的东西:
once :: a -> Event t a
repeatWithDelay :: Event t a -> Time -> Event t a
concatWithDelay :: Event t a -> Event t a -> Time -> Event t a
上面的Time
类型只是我们最终使用的任何时间测量的替代品。我是否需要将系统时间作为行为来驱动“延迟”功能?这似乎比必要的复杂。
提前致谢,
回声诺兰
编辑:好的,repeatWithDelay 和 concatWithDelay 的类型没有意义。这就是我真正的意思。
repeatWithDelay :: a -> Time -> Event t a
concatWithDelay :: a -> a -> Time -> Event t a