Ich möchte FRP in Haskell studieren, aber es ist etwas schwierig, sich für eine Bibliothek zu entscheiden. Viele scheinen tote Versuche zu sein, einige scheinen auferstanden zu sein (wie die jüngsten Aktivitäten auf Yampa).
Nach dem, was ich gelesen habe, scheint es zwei "Arten" von FRP zu geben: Push-Pull-FRP (wie bei Reactive-Banana) auf der einen Seite und Pfeil-FRP (wie bei Yampa) auf der anderen Seite. Es scheint, dass es zur Zeit von Fran und FrTime auch einige "klassische FRP" gab, aber ich habe in letzter Zeit keine Aktivitäten in diesen entdeckt.
Sind diese zwei (oder drei) wirklich grundlegend unterschiedliche Ansätze von FRP?
Ist eine von ihnen veraltete Theorie, während die andere das "Zeug der Zukunft" wäre?
Oder müssen sie sich parallel entwickeln und unterschiedliche Zwecke erfüllen?
Habe ich die bekannteste Bibliothek jeder Kategorie genannt oder gibt es andere zu berücksichtigende Optionen (Sodium, Netwire, et al.)?
Ich habe mir endlich den Vortrag von Evan Czaplicki angesehen , der in den Kommentaren von J. Abrahamson empfohlen wurde. Es ist sehr interessant und hat mir geholfen, die Dinge zu klären. Ich kann es jedem empfehlen, der diese Frage interessant fand.
reactive-banana
ist definitiv Pull-basiert, nicht Push-Pull. reactive
ist Push-Pull. Yampa
und netwire
sind pfeilförmig. Es gibt FRPs, die "Akkumulieren von Werten" erlauben, aber kein "Schalten" erlauben, FRPs, die "Schalten" erlauben, aber keine "Akkumulieren von Werten". Beide sind "einfache" FRP. Arrowized FRP ermöglicht das Umschalten und Akkumulieren und verwendet Pfeile, um die Gefahr der Kombination dieser Funktionen zu steuern. Monadic FRP wie reactive-banana
, sodium
und elerea
verwenden andere Mechanismen vorsichtig , dass Schalten zu gewährleisten und Akkumulieren keine Wechselwirkung zwischen zu viel.