Tôi muốn học FRP ở Haskell, nhưng hơi khó để quyết định sử dụng thư viện. Nhiều người dường như là những nỗ lực chết chóc, một số dường như đã được hồi sinh (chẳng hạn như hoạt động gần đây trên Yampa).
Từ những gì tôi đọc được, có vẻ như có hai "loại" FRP: FRP kéo đẩy (như trong Reactive-Banana) ở một bên và FRP (như trong 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 của Fran và FrTime, nhưng tôi không phát hiện ra bất kỳ hoạt động nào gần đây trong những hoạt động này.
Đây có phải là hai (hoặc ba) cách tiếp cận thực sự khác nhau của FRP?
Là một trong số đó là lý thuyết lỗi thời trong khi cái còn lại sẽ là "công cụ của tương lai"?
Hay họ 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 mỗi danh mục, hoặc có các lựa chọn khác để xem xét (Natri, Netwire, et al)?
Cuối cùng tôi đã xem cuộc nói chuyện từ Evan Czaplicki được đề xuất trong các bình luận của J. Abrahamson. Nó rất thú vị và đã giúp làm rõ mọi thứ cho tôi. Tôi đánh giá cao nó cho bất cứ ai thấy câu hỏi này thú vị.
reactive-banana
chắc chắn là dựa trên kéo không đẩy. reactive
là đẩy-kéo. Yampa
và netwire
được mũi tên. Có những FRP cho phép "tích lũy giá trị" nhưng không cho phép "chuyển đổi", FRP cho phép "chuyển đổi" nhưng không "tích lũy giá trị". Cả hai đều là FRP "đơn giản". Mũi tên FRP cho phép chuyển đổi và tích lũy và sử dụng mũi tên để kiểm soát sự nguy hiểm của việc kết hợp các tính năng đó. FRP đơn điệu như reactive-banana
, sodium
và elerea
sử dụng các cơ chế cẩn thận khác để đảm bảo rằng việc chuyển đổi và tích lũy không tương tác quá nhiều.