Funktionale reaktive / relationale Programmierung - Gibt es einen Unterschied?


12

Ich verwende seit einiger Zeit Reactive Cocoa (von GitHub), eine funktionale reaktive Programmierschnittstelle zur Verwendung mit den Cocoa-Bibliotheken, habe aber gerade "Out of the Tar Pit" gelesen , das Papier, das angeblich die Konzepte dahinter präsentiert. und ich bin ein wenig verwirrt.

Der Artikel stellt (so wie ich es verstehe) die funktionale relationale Programmierung vor, bei der Beziehungen zwischen Daten mit Bedingungen erstellt werden, die vom FRP-System erzwungen werden sollten, um die Menge an "zufälliger" Logik und benötigtem Zustand zu verringern.

Meine Frage ist, sind diese beiden Konzepte - FR (eactive) P und FR (elational) P - im Wesentlichen dasselbe (wobei ersteres nur eine Implementierung des letzteren ist) oder gibt es einen Kernunterschied zwischen beiden? Leider reicht meine Kenntnis der Gegend im Moment nicht aus, um sie ausreichend zu differenzieren.

Wenn es einen Unterschied gibt, scheint es, wie der Name schon sagt, etwas damit zu tun zu haben, dass man auf Datenänderungen reagiert. Reactive Cocoa (und Rx in C #) haben mit Sicherheit das Konzept, Signale zu erzeugen , die bei Datenänderungen ausgelöst werden und zur kontinuierlichen Änderung eines Wertes über die Zeit verwendet werden können.

Ist das der Unterschied? Wenn nicht, was ist das?

(Bitte entschuldigen Sie das schlechte Tagging. Ich kann relevante Tags nicht finden und sie noch nicht erstellen. Aktualisieren Sie die Tags, wenn möglich, auf ein passenderes Format.)


2
"Out of the Tar Pit" stellt nicht die Konzepte hinter funktionaler reaktiver Programmierung vor - es ist nur eine gute Lektüre, um zu verstehen, warum ein Zustand schädlich ist. Das meiste gilt für Pure FP, FRelP und FReaP.
Justin Spahr-Summers

Antworten:


5

Eine Reaktion kann eine Änderung propagieren, ohne ein relationales Modell einzubeziehen. C = A + B Änderung A und / oder B und C reagieren auf die Änderung (könnten aber den gleichen Wert haben). Auf P. 42

Der Ansatz der funktionalen relationalen Programmierung (FRP16) leitet seinen Namen von der Tatsache ab, dass die wesentlichen Komponenten des Systems (die Logik und der wesentliche Zustand) auf der funktionalen Programmierung und dem relationalen Modell basieren (siehe Abbildung 2).

Fußnote 16

Nicht zu verwechseln mit funktionaler reaktiver Programmierung [EH97], die tatsächlich einige Ähnlichkeiten mit diesem Ansatz aufweist, sich jedoch nicht auf Beziehungen oder das relationale Modell konzentriert


Ah ich sehe. Es scheint eine große Überschneidung mit den von mir erwähnten reaktiven Frameworks und der funktionalen relationalen Programmierung zu geben, sicherlich sind einige der Konzepte vorhanden, aber sie beziehen ihre Signalkonzepte auch aus den Verhaltensweisen und Ereignissen dieses zweiten Papiers.
Danpalmer

3
Die Frequenzweiche bewegt sich meist auf dem Niveau von reinem FP. Die relationalen und reaktiven Paradigmen haben nicht wirklich viel gemeinsam.
Justin Spahr-Summers
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.