我想在Haskell学习FRP,但是要决定要使用的库有点困难。许多似乎是无用的尝试,有些似乎已经复活(例如最近在Yampa的活动)。
根据我的阅读,似乎有两种“种类”的FRP:一侧是推拉式FRP(例如在Reactive香蕉中),而在另一侧则是箭头式FRP(在Yampa中)。似乎在Fran和FrTime时也曾经有一些“经典FRP”,但是我没有发现这些中有任何近期活动。
这两种(或三种)真的是玻璃钢根本不同的方法吗?
其中一个是过时的理论,而另一个将是“未来的东西”吗?
还是它们必须并行发展以解决不同的目的?
我是否是每个类别中最杰出的图书馆,还是有其他选择要考虑(Sodium,Netwire等)?
我终于看了E. Czaplicki在J. Abrahamson评论中推荐的演讲。这非常有趣,确实为我澄清了一切。我强烈推荐给任何发现此问题有趣的人。
reactive-banana
绝对是基于拉式而非推拉式。reactive
是推挽式 Yampa
并netwire
箭头化。有一些FRP允许“累计值”但不允许“切换”,而FRP却允许“切换”但不允许“累计值”。两者都是“简单的” FRP。箭头式FRP允许切换和累积,并使用箭头来控制组合这些功能的危险。一元FRP像reactive-banana
,sodium
以及elerea
使用其他小心机制,以确保开关和积累不相互影响太多。