Chcę uczyć się FRP w Haskell, ale trudno jest zdecydować, jakiej biblioteki użyć. Wielu wydaje się być martwymi próbami, niektórzy wydają się być wskrzeszeni (np. Niedawna aktywność na Yampie).Jak zasadniczo różnią się FRP od pull-pull i arrowed?
Z tego, co przeczytałem, wynika, że istnieją dwa "rodzaje" FRP: push-pull FRP (jak w Reactive-banana) po jednej stronie i arrowized FRP (jak w Yampie) po drugiej stronie. Wygląda na to, że w czasach Fran i FrTime istniało również coś w rodzaju "klasycznego FRP", ale nie zauważyłem w nich żadnej niedawnej aktywności.
Czy te dwa (lub trzy) naprawdę fundamentalnie różne podejścia do FRP?
Czy jedna z nich jest przestarzałą teorią, a druga to "materiał przyszłości"?
Czy muszą one ewoluować równolegle, odnosząc się do różnych celów?
Czy wymieniłem najbardziej znaną bibliotekę każdej kategorii lub czy są inne opcje do rozważenia (Sód, Netwire i inni)?
I wreszcie obserwował talk from Evan Czaplicki zalecany w komentarzach J. Abrahamson. Jest to bardzo interesujące i pomogło mi to wyjaśnić. Gorąco polecam każdemu, kto uznał to pytanie za interesujące.
Być może zainteresuje Cię opinia ertes'a (autora netwire): http://stackoverflow.com/a/13344292/414413 – Cirdec
Naprawdę szybko: 'reaktywny-banan' jest zdecydowanie oparty na pull-u, a nie push-pull. "reactive" to push-pull. 'Yampa' i' netwire' są strzałkami. Istnieją FRP, które umożliwiają "gromadzenie wartości", ale nie pozwalają na "przełączanie", FRP, które umożliwiają "przełączanie", ale nie "gromadzenie wartości". Oba są "proste" FRP. Arrowed FRP umożliwia przełączanie i gromadzenie i używa strzałek do kontrolowania niebezpieczeństwa łączenia tych funkcji. Monadyczne FRP, takie jak "reaktywny-banan", "sód" i "elerea", wykorzystują inne ostrożne mechanizmy, aby zapewnić, że przełączanie i akumulacja nie wchodzą w interakcje zbyt wiele. –
Arrowed FRP ma również niezłą cechę, że sygnały są zawsze podawane w kontekście ich danych wejściowych, co pozwala na transformację wyjściowych współzmiennie i wprowadzeń przeciwnie, aby lepiej symulować interaktywne FRP. Zapoznaj się z prawdziwie funkcjonalnymi interfejsami użytkownika opracowanymi przez Courtney i Elliott, aby pokazać doskonały przykład tej funkcji. –