我已經搜查了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時間延遲