我目前正在阅读WebSharper的文档。在关于 FRP 的部分中,它指出:
功能响应式编程 (FRP) 通常为事件流提供 Event 类型,为时变值提供 Behavior 类型,以及对它们有用的组合器。
...
但是,目前我们决定避免实施 FRP。相反,我们专注于功能的子集,定义类似于行为的随时间变化的视图值,但不支持实时采样。事件流留给用户使用回调或第三方库来处理。这是对 FRP 的极大简化,并且更容易有效地实施。
随着 JavaScirpt 中的弱指针变得可用,这个决定可能会被修改,特别是考虑到 OCaml React 的成功。
在不久的将来,我们打算提供并发 ML 组合器,以更好地支持处理事件流并改进组件的组合。
但是,我不确定这里描述的“事件类型”和“行为类型”之间到底有什么区别。我在谷歌上搜索了一些文章/教程,但它们似乎也不是很明确。
我不确定在 WebSharper 的实现中没有“事件”会错过什么。
对不起,如果这个问题听起来很基础。我不熟悉与 FRP 相关的概念。
--
编辑:我想我在FRP - 事件流和信号 - 仅使用信号时丢失了什么?. 要点是:
事件流允许累积更新,而行为只能取决于观察到的元素的当前值。
如果事件和行为都实现了,它们允许在系统内递归。