首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FRP框架和IO

FRP框架和IO
EN

Stack Overflow用户
提问于 2014-10-25 07:04:45
回答 1查看 697关注 0票数 10

我刚刚在哈斯克尔调查玻璃钢(主要是reactive-banana (证明!)),我想知道这对他们是否常见,如果是反应性香蕉,为什么要在IO monad中操作,而不是被限制在MonadIO或更好的地方,任何Monad (这样我就可以提供自己的堆栈)?

在我看来,这似乎是因为对GUI编程的关注,在那里,您将它与一些在IO中操作的现有库集成在一起?更改它是否可行,这样我就可以将它与自定义的monad堆栈集成起来了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-26 18:13:13

如果你在问为什么

代码语言:javascript
复制
reactimate :: Frameworks t => Event t (IO ()) -> Moment t ()

期望一个值为IO ()的事件,而不是允许使用instance MonadIO M的自定义monad M (),那么答案是:

在实践中,自定义monad堆栈只将状态/读取器/写入器效果添加到基本的IO monad中。然而,在理论上,完全有可能添加一些花哨的控制机制,如协同控制或非确定性控制。我不知道如何将组合子accumE产生的内部状态与这些更一般的效应结合起来,我也不知道事件在非确定性环境中发生意味着什么。这就是为什么reactimate只限于IO的原因。

如果您有一个来自状态/读取器/写入器家族的自定义monad堆栈,那么通常可以将其映射到纯IO计算中,并与reactimate一起使用。如果您发现这不可行(我确实认为可能有问题),我需要更详细的描述具体情况才能提供帮助。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26560100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档