它有时被称为“函数式反应式编程”,但这是用词不当。ReactiveX 可能是函数式的,也可能是响应式的,但“函数式响应式编程”是另一种动物。主要区别之一是函数式反应式编程对随时间连续变化的值进行操作,而 ReactiveX 对随时间发出的离散值进行操作。
同时,从Wikipedia 的功能响应式编程页面,ReactiveX 列在“实现”部分:
实现[编辑]
- cellx,JavaScript 反应性的超快速实现
- Elm,可编译为 HTML、CSS 和 JavaScript 的 FRP 语言
- Frappuccino FRP 在 Ruby 中的实现
- Flapjax,JavaScript 中的行为/事件 FRP 实现
- Reactive.jl,Julia 中的 FRP 实现
- ReactiveX、FRP 以多种语言实现,包括 Java、JavaScript、Python、Swift 等等
- Haskell 中的响应式香蕉 FRP 实现
- 用 Swift 和 Objective-C 实现的 ReactiveCocoa FRP
- 用纯 Swift 实现的 ReactiveKit FRP
- Haskell 中的 Reflex FRP 实现
- Scala(和 Scala.js)中的 Scala.Rx FRP 实现
- Sodium、C#、C++、Haskell(已弃用 [12])、Java、> Rust 和 Scala 中的 FRP 实现
- Haskell中的Yampa FRP实现
我很了解 ReactiveX 是做什么的,也对“反应式编程”和“函数式反应式编程”做了一些研究,但我仍然无法区分它们之间的关系。
事实上,我有点相信 Wikipedia 页面用词不当,或者错误地在“实现”部分列出了示例,因为我知道cellx和ReactiveX(都在示例中列出)是为了解决完全不同的问题而构建的。