10得票2回答
函数式响应式编程相较于事件监听器的优势

我最近听说了很多关于函数式响应式编程的内容,并决定了解一下这是什么。通过阅读bacon.js文档,我发现主要区别在于,与其在组件上设置事件监听器,我会在它上面创建一个事件流,并将事件处理程序传递到该流中。换句话说,我所做的只是将事件处理程序从组件移到了事件流中。就是这样吗?如果是这样,这样做的...

10得票1回答
在函数式响应式编程中,如何在应用程序的两个部分之间共享状态?

我有一些应用程序体系结构,用户输入会流向某个自动机中,在事件流上下文中运行,并将用户引导到应用程序的不同部分。应用程序的每个部分都可能基于用户输入运行一些操作。然而,应用程序的两个部分共享某些状态,并且在概念上读取和写入相同的状态。问题是这两个“线程”并非同时运行,其中一个被“暂停”,而另一个...

10得票1回答
FRP框架和IO

我刚刚在研究Haskell中的FRP(主要是reactive-banana(见证!)),我想知道它们是否常见,以及在reactive-banana的情况下,为什么要在IO单子中操作,而不是限制为MonadIO,或者更好地说,任何Monad(这样我就可以提供自己的堆栈)? 我认为这是因为重点放...

9得票3回答
从外部网络采样行为

由于作者已经弃用钠,我正在尝试将我的代码移植到reactive-banana。然而,这两者之间似乎存在一些不一致,我很难克服。 例如,在钠中,很容易检索行为的当前值: retrieve :: Behaviour a -> IO a retrieve b = sync $ sample...

9得票2回答
与传统的FRP框架相比,Netwire中的事件处理

大多数Haskell FRP框架(如AFRP、Yampa和Reactive-banana)区分连续时变函数和离散函数,通常将它们称为“behaviors”和“events”。 Netwire是一个例外,它使用抑制单子来模拟事件。这种方法的优缺点是什么? 我特别对将FRP应用于机器人控制感兴...

9得票3回答
使用Netwire进行游戏实体建模

我将使用netwire和OpenGL在Haskell中编写一个实时游戏。基本思路是每个对象都由一个连线表示,该连线会获取一定数量的数据作为输入并输出其状态,然后我将把它们全部连接成一个大的连线,该连线获取GUI的状态作为输入并输出世界状态,然后我可以将其传递给渲染器以及一些“全局”逻辑比如碰撞...

9得票1回答
使用gi-gtk和Reactive Banana捕获Haskell异常

我的应用程序没有任何错误,但是为了防止包含任何底层值,我想放置一个通用的异常捕获器,它至少会弹出一个消息框,告诉用户应该报告什么类型的错误。因为我正在使用gi-gtk,我想到初始化后的任何异常都将发生在Gtk.main函数内部,所以我的main函数的结尾看起来像这样: let execute...

9得票2回答
如何在Elm中动态创建输入框?

我希望创建一个按钮,按下它后,表单会增加一个新的输入框或文本域。

9得票2回答
使用Bacon.js在"pending"状态下禁用提交按钮

我有一个表单,其中包含许多图片URL - 后端将URL字符串持久化,并且图片直接上传到S3。我想使用Bacon.js流来处理在上传过程中禁用/启用表单提交按钮。 我尝试了各种方法(使用Bacon.fromPromises的流流,使用fromPromise-d延迟的流和原始延迟的总线,并尝试手...

8得票1回答
FRP中行为(Behavior)和事件(Event)有什么区别?

我目前正在阅读WebSharper的文档。在FRP部分中,它指出: 函数响应式编程(FRP)通常为事件流提供事件类型和行为类型,以及这些类型的有用组合器。 ... 然而,我们决定暂时避免实现FRP。相反,我们专注于定义类似于行为但不支持实时采样的时间变化视图值的功能子集。事件流留给用户使用...