首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >玻璃钢中的行为和事件有什么区别?

玻璃钢中的行为和事件有什么区别?
EN

Stack Overflow用户
提问于 2016-09-10 09:17:11
回答 1查看 1.2K关注 0票数 8

我目前正在阅读WebSharper的文档。在关于FRP的部分中,它声明:

函数式反应编程()通常为事件流提供事件类型,为时变值提供行为类型,并提供有用的组合器。 ..。 然而,目前我们决定避免实施玻璃钢。相反,我们关注功能子集,定义类似于行为的时变视图值,但不支持实时采样。事件流留给用户使用回调或第三方库来处理。这是一个广泛的简化玻璃钢,并更容易有效地实施。 当弱指针在JavaScirpt中可用时,这个决定可能会被修改,特别是考虑到OCaml的反应成功。 在不久的将来,我们打算提供并发ML组合器,以更好地支持处理事件流和改进组件的组合。

但是,我不知道这里描述的“事件类型”和“行为类型”到底有什么区别。我在谷歌上搜索了一些文章/教程,但它们似乎也不太明确。

我不知道在WebSharper的实现中没有“事件”,我错过了什么。

如果这个问题听起来很基本,很抱歉。我不熟悉与玻璃钢相关的概念。

--

编辑:我想我在玻璃钢-事件流和信号-什么是丢失在使用信号?找到了关于没有事件流的问题的答案。要点如下:

  1. 事件流允许累积更新,而行为只能依赖于观察到的元素的当前值。
  2. 如果事件和行为都实现了,那么它们允许在系统中递归。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-10 14:17:20

事件和行为之间的区别可以追溯到关于功能反应动画 (PDF)的第一篇论文中,该论文很好地解释了两者之间的区别。这样做的目的是:

  • Behaviours表示随时间变化的值,例如,鼠标X坐标随时间变化,但它始终具有一定的价值。
  • events 表示系统中的离散事件--它们不时发生,可以触发一些更改,但并不总是有值。例如,可以发生鼠标单击,但您不能问“单击的当前值是多少”。

这些都是非常好的理论思想,因为你可以用行为和事件来做不同的事情,它们很好地捕捉到了反应系统中不同类型事物背后的一些直觉。

然而,在实践中,实现它是相当棘手的--大多数“行为”的表示都使用抽样,因此它们的行为很像离散事件(也许是因为计算机就是这样工作的?)因此,实际上只有少数几个系统遵循了最初的严格区别。

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

https://stackoverflow.com/questions/39424567

复制
相关文章

相似问题

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