这个名为 Reactive Extensions 的东西也称为 ReactiveX。 http://reactivex.io/intro.html
介绍中有一部分说明:
“它有时被称为”功能反应式编程“,但这是用词不当.ReactiveX 可能是功能性的,它可能是反应性的,但”功能反应式编程“是一种不同的动物。一个主要的不同点是功能性反应式编程在运行随着时间的推移不断变化的值,而 ReactiveX 对随时间发射的离散值进行操作。(参见 Conal Elliott 关于功能反应 programming.)的 more-precise 信息的工作“
现在,如果我想 understand/write 关于 Reactive Extensions?这是否意味着 FRP <:Reactive Extensions 所以 Reactive 扩展也应该包括 FRP。或者这两个[3]或[4]是两个不同的概念,不应该对待它们?
2 回答
“功能反应式编程”是 Conal Elliott 创造的一个术语(或受欢迎程度)。他有一个精确定义(另见什么是(功能)反应式编程?)。如您引用的帮助文档中所述,ReactiveX 不符合该定义。
鉴于所有这些,两者之间存在一些重叠。
在 ReactiveX 中,时间(序列化事件除外,i.e.,因果关系)不相关,具体时间取决于调度程序。值是离散的 push-based。
根据定义,FRP 具有时间概念。价值观是时间的连续函数。事实上,FRP 中最简单的行为是身份功能。
tl;博士:FRP 是一个完全不同的野兽。