「関数型リアクティブ プログラミング」と呼ばれることもありますが、これは誤称です。ReactiveX は関数型かもしれませんし、リアクティブ型かもしれませんが、「関数型リアクティブ プログラミング」は別物です。主な相違点の 1 つは、関数型リアクティブ プログラミングが時間の経過とともに連続的に変化する値で動作するのに対し、ReactiveX は時間の経過とともに放出される離散値で動作することです。
一方、ウィキペディアの Functional Reactive Programming ページから、ReactiveX は「実装」セクションにリストされています。
実装[編集]
- cellx、javascript のリアクティブの超高速実装
- Elm、HTML、CSS、および JavaScript にコンパイルされる FRP 言語
- Ruby でのフラペチーノ FRP 実装
- Flapjax、動作/イベント FRP の JavaScript での実装
- Reactive.jl、Julia での FRP 実装
- Java、JavaScript、Python、Swift などを含む複数の言語での ReactiveX、FRP の実装
- Haskell でのリアクティブ バナナ FRP 実装
- Swift と Objective-C で実装された ReactiveCocoa FRP
- 純粋な Swift に実装された ReactiveKit FRP
- Haskell での Reflex FRP の実装
- Scala.Rx Scala (および Scala.js) での FRP 実装
- Sodium、C#、C++、Haskell (非推奨[12])、Java、Rust、および Scala での FRP 実装
- Haskell での Yampa FRP の実装
私は ReactiveX の機能をよく理解しており、「リアクティブ プログラミング」と「関数型リアクティブ プログラミング」についても調査しましたが、それらの間の関係をまだ区別できません。
実際、ウィキペディアのページは誤称であるか、「実装」セクションに例を誤ってリストしていると思います。なぜなら、 cellxとReactiveX (両方とも例にリストされています) が完全に異なる問題を解決するために構築されていることを知っているからです。