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


12

私が使用してきた反応ココア(GitHubによる)、機能性反応性今しばらくの間、ココアライブラリで使用するためのプログラミングAPIを、ちょうど読みました「タールピットのアウト」、おそらくその背後にある概念を提示することを紙、私は少し混乱しています。

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

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

違いがある場合は、名前が示すように、データの変更に反応しているように見えます。確かに、Reactive Cocoa(およびC#のRx)には、データの変更でトリガーされるシグナルを作成するという概念があり、時間をかけて継続的に値を変更するために使用できます。

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

(不適切なタグ付けはご容赦ください。関連するタグが見つからず、まだ作成できません。可能な場合は、タグをより適切なものに更新してください。)


2
「Out of the Tar Pit」は、関数型リアクティブプログラミングの背後にある概念を提示していません。状態が有害である理由を理解するための良い読み物です。そのほとんどは、純粋なFP、FRelP、およびFReaPに適用されます。
ジャスティンスパー夏

回答:


5

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

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

脚注16

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


ああ、分かった。私が言及したリアクティブフレームワークと関数型リレーショナルプログラミングには多くのクロスオーバーがあるようです。確かにいくつかの概念が存在しますが、それらはまた、2番目の論文の動作とイベントから信号の概念を引き出します。
ダンパルマー

3
クロスオーバーの大部分は純粋なFPレベルです。リレーショナルパラダイムとリアクティブパラダイムには、実際には多くの共通点はありません。
ジャスティン・スパー夏
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.