web-dev-qa-db-ja.com

関数型リアクティブ/リレーショナルプログラミング–違いはありますか?

私は Reactive Cocoa (by GitHub)、FunctionalReactiveプログラミングAPIを使用して、Cocoaライブラリで使用していますその間 "Out of the Tar Pit" を読んだばかりですが、その背後にある概念を提示していると思われる論文であり、私は少し混乱しています。

この論文は(私が理解しているように)機能的なRelationalプログラミングを提示し、データ間の関係はFRPシステムによって強制されるべき条件で作成され、必要な「偶発的な」ロジックと状態の量。

私の質問は、これらの2つの概念-FR(eactive)PとFR(elational)Pは本質的に同じものですか(前者は後者の実装にすぎません)か、2つの間にコアの違いはありますか?残念ながら、現時点での私の領域の知識は、十分にそれらを区別するのに十分ではありません。

違いがある場合は、名前が示すように、データの変化に対応するために何らかの関係があるようです。確かに、Reactive Cocoa(およびC#のRx)には、データの変更時にトリガーされる信号を作成するという概念があり、継続的に変更するために使用できます。時間の経過に伴う価値。

これは違いますか?そうでない場合、何ですか?

(不十分なタグ付けを許してください。関連するタグが見つからず、まだ作成できません。可能であれば、タグをより適切なものに更新してください。)

12
danpalmer

反応は、リレーショナルモデルを使用せずに変更を伝播できます。 C = A + B変更Aおよび/またはBおよびCは、変更に反応します(ただし、同じ値になる可能性があります)。 42ページ

関数型リレーショナルプログラミング(FRP16)のアプローチは、システムの必須コンポーネント(ロジックと必須状態)が関数型プログラミングとリレーショナルモデルに基づいているという事実からその名前が由来しています(図2を参照)。

脚注16

機能的なreactiveプログラミング[EH97]と混同しないでください。実際にはこのアプローチといくつかの類似点がありますが、関係や関係モデルに本質的な焦点はありません。

5
JeffO