Je veux étudier FRP à Haskell, mais c'est un peu difficile de décider d'une bibliothèque à utiliser. Beaucoup semblent être des tentatives mortes, certains semblent avoir été ressuscités (comme la récente activité sur Yampa).
D'après ce que j'ai lu, il semble qu'il existe deux "types" de FRP: le FRP push-pull (comme dans Reactive-banana) d'un côté et le FRP fléché (comme dans Yampa) de l'autre côté. Il semble qu'il y ait également eu des "FRP classiques" à l'époque de Fran et FrTime, mais je n'ai pas repéré d'activité récente dans ces derniers.
Ces deux (ou trois) approches du PRF sont-elles vraiment fondamentalement différentes?
L'une d'elles est-elle une théorie dépassée alors que l'autre serait le "truc du futur"?
Ou doivent-ils évoluer en parallèle, à des fins différentes?
Ai-je nommé la bibliothèque la plus importante de chaque catégorie, ou y a-t-il d'autres options à considérer (Sodium, Netwire, et al)?
J'ai finalement regardé le discours d'Evan Czaplicki recommandé dans les commentaires de J. Abrahamson. C'est très intéressant et cela m'a aidé à clarifier les choses. Je le recommande vivement à tous ceux qui ont trouvé cette question intéressante.
reactive-banana
est définitivement basé sur le pull et non sur le push-pull. reactive
est push-pull. Yampa
et netwire
sont fléchés. Il y a des FRP qui permettent des "valeurs cumulées" mais ne permettent pas de "commuter", des FRP qui permettent des "commutations" mais pas des "valeurs cumulées". Les deux sont des FRP "simples". Le FRP fléché permet de commuter et d'accumuler et utilise des flèches pour contrôler le danger de combiner ces fonctionnalités. Monadique FRP comme reactive-banana
, sodium
et elerea
utiliser d' autres mécanismes rigoureux afin de commutation et l' accumulation ne pas interagi trop.