我已经搜查了reactive-banana的文档,我找不到指定显式时间延迟的方法。比如说,我想采取Event t a
,并将其所有事件在未来1秒内转移;或从现在开始发生1秒钟的事件(在Moment t
之内);或类似的东西。反应式香蕉中是否有明确的延迟?如果不是,用户如何实现(例如,延迟一秒钟回显输入)?反应 - 香蕉时间延迟
8
A
回答
4
正如本指出的,这是正确的:反应式香蕉不是固有的时间和延迟概念。
主要原因是很难保证逻辑时间和实时性的一致。当一个事件的逻辑时间尚未计算出来之前,实时发生鼠标点击时,会发生什么情况,即其实时是否在其逻辑时间之后变暗?
但是,仍然有可能通过使用外部计时器事件来处理时间。看看Wave.hs的例子。
3
我不是一个专家,但我已经使用了一个更老的反应式香蕉来满足这种需求的程序(不幸的是,我目前没有手头的代码)。
我认为是明确的延误不符合超天然内反应香蕉框架,因为你总是含蓄地处理某种抽象的时间。延迟特定时间间隔需要处理现实世界的时间概念。我可以看到,很难说union event (delay 1.0 event)
是什么意思,在权威模型方面type Event a = [Maybe a]
:应该是[a, b, a, b]
或[a, a, b, b]
?正如我一直在想的那样,问题在于如果没有考虑运行运行时细节,那么这两者中哪一个应该是未指定的。
但是你可以通过将IO动作连接到你想延迟睡眠一段时间的事件(显然不在主线程中)然后触发一个不同的事件来实现“反应 - 香蕉框架” 。我相信我能够将所有这些逻辑都包含在我可以从NetworkDescription
monad调用的函数中(这是在存在Moment
monad之前)以获得新的延迟事件。
相关问题
- 1. 有反应 - 香蕉-gtk吗?
- 2. 反应香蕉行为
- 3. 功能反应型香蕉型混淆
- 4. ifB在反应香蕉中的实现
- 5. 活性香蕉和gtk2hs反应表
- 6. 反应性香蕉节流事件
- 7. 在反应香蕉中找不到AddHandler
- 8. 推动与拉动反应香蕉
- 9. 活性香蕉:绑定
- 10. 响应延迟反应
- 11. 安装反应香蕉wx或wx基于linux的ghc 7.0.4
- 12. 带反应香蕉和SDL的完全点击/ KeyPress事件
- 13. 我是否在使用反应式香蕉?
- 14. 反应香蕉怎么办IO事件正确
- 15. 使用反应香蕉的Haskell中的音频合成
- 16. 你如何删除反应香蕉中的重复事件
- 17. 反应香蕉中的“总和事件”有什么问题?
- 18. 反应式香蕉能否在网络中处理周期?
- 19. 反应式香蕉中的'Latch'和'Pulse'是什么?
- 20. 如何在反应香蕉中实现游戏循环?
- 21. 反应香蕉1.0.0 - 为什么这个旧的代码破坏?
- 22. 时间延迟Tkinter
- 23. 延迟反应TextChanged事件
- 24. 反应延迟渲染
- 25. Java时间延迟
- 26. 安装无功香蕉WX
- 27. 做使用无香蕉
- 28. ssh香蕉pi与mac
- 29. 处理环境 - 延迟时间延迟
- 30. Python时间延迟