簡體   English   中英

FRP框架和IO

[英]FRP frameworks and IO

我剛剛在Haskell中調查FRP(主要是reactive-banana (推薦!)),我想知道它們是否常見,並且在反應性香蕉的情況下,在IO monad中操作的原因是什么,而不是受限制MonadIO ,或者更好,任何Monad (這樣我可以提供自己的堆棧)?

在我看來,這是因為專注於GUI編程,你將它與一些在IO中運行的現有庫集成? 是否可以更改它以便我可以將它與自定義monad堆棧集成?

如果你問為什么

reactimate :: Frameworks t => Event t (IO ()) -> Moment t ()

期望一個值為IO ()的事件,而不是允許使用instance MonadIO M的自定義monad M () ,那么答案是這樣的:

實際上,自定義monad堆棧僅將狀態/讀取器/寫入器效果添加到基本IO monad。 但是,從理論上講,完全可以添加協同控制機制,如協程或非確定性。 我不知道如何將組合器accumE產生的內部狀態與這些更普遍的影響結合accumE ,我不知道事件在非確定性環境中發生意味着什么。 這就是為什么reactimate限制只限於IO

如果您具有狀態/讀取器/寫入器系列的自定義monad堆棧,則通常可以將其映射到純IO計算並將其與reactimate使用一起reactimate 如果您發現這不起作用(我認為可能存在問題),我需要對具體情況進行更詳細的描述才能提供幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM