Programmation fonctionnelle réactive / relationnelle - Y a-t-il une différence?


12

J'utilise Reactive Cocoa (par GitHub), une API de programmation fonctionnelle réactive à utiliser avec les bibliothèques Cocoa depuis un certain temps maintenant, mais je viens de lire "Out of the Tar Pit" , le papier qui présente soi-disant les concepts derrière cela, et je suis un peu confus.

L'article présente (si je comprends bien) la programmation relationnelle fonctionnelle , où les relations entre les données sont créées avec des conditions qui devraient être appliquées par le système FRP pour réduire la quantité de logique et d'état `` accidentels '' nécessaires.

Ma question est, ces deux concepts - FR (eactive) P et FR (elational) P sont-ils essentiellement la même chose (le premier étant simplement une implémentation du second) ou y a-t-il une différence fondamentale entre les deux? Malheureusement pour le moment, ma connaissance de la région n'est pas assez bonne pour que je puisse les différencier suffisamment.

S'il y a une différence, cela semble avoir quelque chose à voir avec, comme son nom l'indique, la réaction aux changements dans les données. Certes, Reactive Cocoa (et Rx en C #) ont le concept de créer des signaux qui sont déclenchés lors de changements de données et peuvent être utilisés pour modifier en continu une valeur au fil du temps.

Est-ce la différence? Sinon, c'est quoi?

(Veuillez excuser le mauvais marquage, je ne trouve pas les balises pertinentes et je ne peux pas encore les créer - veuillez mettre à jour les balises pour quelque chose de plus approprié si vous le pouvez.)


2
"Out of the Tar Pit" ne présente pas les concepts derrière la programmation réactive fonctionnelle - c'est juste une bonne lecture pour comprendre pourquoi l'état est nuisible. La plupart s'applique aux FP purs, FRelP et FReaP.
Justin Spahr-Summers du

Réponses:


5

Une réaction peut propager un changement sans impliquer un modèle relationnel. C = A + B Le changement A et / ou B et C réagira au changement (mais pourrait se retrouver avec la même valeur). Dans. 42

L'approche de la programmation relationnelle fonctionnelle (FRP16) tire son nom du fait que les composants essentiels du système (la logique et l'état essentiel) sont basés sur la programmation fonctionnelle et le modèle relationnel (voir figure 2).

note de bas de page 16

À ne pas confondre avec la programmation réactive fonctionnelle [EH97] qui présente en fait quelques similitudes avec cette approche, mais qui n'a pas de focalisation intrinsèque sur les relations ou le modèle relationnel


Ah, je vois. Il semble y avoir beaucoup de croisements avec les cadres réactifs que j'ai mentionnés et la programmation relationnelle fonctionnelle, il y a certainement certains des concepts présents, mais ils tirent également leurs concepts de signaux des comportements et des événements de ce deuxième article.
danpalmer

3
Le cross-over se situe principalement au niveau du FP pur. Les paradigmes relationnels et réactifs n'ont pas vraiment grand chose en commun.
Justin Spahr-Summers
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.