Comment sont fondamentalement différents push-pull et arrowized PRF?

Je veux étudier PRF en Haskell, mais c'est un peu difficile de décider sur une bibliothèque à utiliser.
Beaucoup semblent être morts tentatives, certains semblent avoir été ressuscité " (tels que l'activité récente sur Yampa).

De ce que j'ai lu, il semble qu'il y a deux "types" de PRF: push-pull (PRF comme dans Réactive-banane) sur un côté et arrowized PRF (comme dans Yampa) sur l'autre côté. Il semble qu'il y a également quelques "classiques PRF" au moment de Fran et FrTime, mais je n'ai pas repéré d'activité récente dans ces.

  • Sont ces deux (ou trois) vraiment approches fondamentalement différentes de PRF?

  • Est une théorie obsolète, tandis que les autres seraient les "choses de l'avenir"?

  • Ou ont-ils d'évoluer en parallèle, s'adressant à différentes fins?

  • Je n'ai citer que les plus éminents de la bibliothèque de chaque catégorie, ou il y en a d'autres options à considérer (Sodium, Netwire, et al)?



J'ai enfin regardé le parler de Evan Czaplicki recommandé dans les commentaires par J. Abrahamson. Il est très intéressant et a aider à clarifier les choses pour moi. Je le recommande fortement à toute personne qui trouve cette question intéressante.

  • Vous pourriez être intéressé par ertes " (le netwire de l'auteur) avis: stackoverflow.com/a/13344292/414413
  • Très rapidement: reactive-banana est certainement basé sur l'extraction de ne pas pousser-tirer. reactive est push-pull. Yampa et netwire sont arrowized. Il y a des Prf qui permettent l'accumulation des valeurs" mais ne permettent pas de "commutation", Prf qui permettent de "commutation", mais pas "l'accumulation des valeurs". À la fois de ceux qui sont "simples" PRF. Arrowized PRF permet de passer et de s'accumuler et utilise les flèches pour contrôler le danger de la combinaison de ces caractéristiques. Monadique PRF comme reactive-banana, sodium, et elerea utiliser d'autres minutieuse des mécanismes pour s'assurer que la commutation et l'accumulation n'interagissent pas trop.
  • Arrowized PRF a également la fonction propre que les signaux sont toujours indiquées dans le contexte de leurs intrants qui vous permet de transformer les sorties covariantly et les entrées contravariantly afin de mieux simuler interactive PRF. Voir Véritablement Fonctionnelle des Interfaces Utilisateur par Courtney et Elliott pour un excellent exemple de cette fonctionnalité.
  • Vous pourriez également être intéressé par le talk "Contrôle du Temps et de l'Espace"> par Elm auteur Evan Czaplicki. À mon avis, il parvient à donner un bon aperçu de haut niveau sur le PRF de l'espace de conception et les compromis impliqués.
  • Merci J. Abrahamson et DanielM pour vos commentaires.
  • Je pense que vous aurez votre réponse ici.. stackoverflow.com/questions/10000074/...
  • Je voulais juste de noter, que reactive-banana n'ont pas de monadique, mais une interface applicative.
  • La base de l'API est applicative, oui, mais le Commutation de l'API introduit la monade. J'avoue que sa nature différente de Sodium/Elerea, cependant.
  • Peut-être vous pouvez définir un acronyme la première fois que vous l'utilisez (PRF).
  • Selon hackage, réactif-la banane est type push, ne pas le tirer à base de...