Tôi muốn nghiên cứu FRP trong Haskell, nhưng hơi khó để quyết định thư viện sử dụng. Nhiều người dường như đã chết, một số dường như đã được phục sinh (như hoạt động gần đây trên Yampa).Làm thế nào về cơ bản khác nhau là đẩy-kéo và FRP mũi tên?
Từ những gì tôi đọc, có vẻ như có hai "loại" FRP: push-pull FRP (như trong Reactive-banana) ở một bên và FRP mũi tên (như ở Yampa) ở phía bên kia. Có vẻ như cũng từng có một số "FRP cổ điển" vào thời điểm Fran và FrTime, nhưng tôi chưa phát hiện thấy bất kỳ hoạt động nào gần đây trong đó.
Có phải hai (hoặc ba) phương pháp tiếp cận cơ bản này thực sự khác nhau về FRP không?
Là một trong số chúng có lý thuyết lỗi thời trong khi phần còn lại sẽ là "nội dung của tương lai"?
Hoặc chúng phải phát triển song song, giải quyết các mục đích khác nhau?
Tôi đã đặt tên cho thư viện nổi bật nhất của từng danh mục hay có các tùy chọn khác để xem xét (Sodium, Netwire, et al)?
cuối cùng tôi xem talk from Evan Czaplicki đề nghị trong các ý kiến của J. Abrahamson. Nó rất thú vị và đã giúp làm rõ mọi thứ cho tôi. Tôi rất khuyên bạn nên nó cho bất cứ ai tìm thấy câu hỏi này thú vị.
Bạn có thể quan tâm đến ý kiến của ertes '(tác giả của netwire): http://stackoverflow.com/a/13344292/414413 – Cirdec
Thực sự nhanh chóng: 'phản ứng-chuối' chắc chắn là kéo dựa trên không đẩy-kéo. 'reactive' là push-pull. 'Yampa' và' netwire' được mũi tên. Có FRPs cho phép "tích lũy giá trị" nhưng không cho phép "chuyển đổi", FRPs cho phép "chuyển đổi" nhưng không "tích lũy giá trị". Cả hai đều là FRP "đơn giản". Arrowized FRP cho phép chuyển đổi và tích lũy và sử dụng các mũi tên để kiểm soát nguy cơ kết hợp các tính năng đó. Monadic FRP như 'reactive-banana',' sodium', và 'elerea' sử dụng các cơ chế cẩn thận khác để đảm bảo việc chuyển đổi và tích lũy không tương tác quá nhiều. –
FRP mũi tên cũng có tính năng gọn gàng mà tín hiệu luôn được nêu trong ngữ cảnh đầu vào cho phép bạn chuyển đổi kết quả đầu ra covariantly và đầu vào contravariantly để mô phỏng FRP tương tác tốt hơn. Xem giao diện người dùng thực sự chức năng của Courtney và Elliott để có một ví dụ tuyệt vời về tính năng đó. –