我想在Haskell学习FRP,但要决定要使用的库有点困难。
许多似乎是无用的尝试,有些似乎已经复活(例如最近在Yampa的 Activity )。
从我阅读的内容来看,似乎有两种“种类”的FRP:一侧是推拉式FRP(例如在Reactive-banana和Reflex中),而在另一侧则是箭头式FRP(在Yampa中)。似乎在Fran和FrTime时也曾经有一些“经典FRP”,但是我没有发现这些中有任何近期 Activity 。
我终于看了[J. Abrahamson的评论中推荐的[Evan Czaplicki的谈话](https://www.youtube.com/watch?v=Agu6jipKfYw)。这非常有趣,确实为我澄清了一切。我强烈推荐给任何发现此问题有趣的人。
最佳答案
我前往Haskell.org进行了调查,以调查您的问题。我发现您应该阅读两篇重要的论文以进一步进行研究,并且我将从这些学术论文中为您的问题建立答案。
Push-Pull FRP by Conal Elliott
Generalising Monads to Arrows by John Hughes
因此,Arrow与推挽的目标相矛盾。这并不意味着您不能一次使用所有这些功能,只是那会很复杂,并且有些内容如果没有抽象Arrow类型就无法计算。
希望这可以帮助!就像我说的,阅读我指出的文章可以使您更好地理解箭头,插入和拉动之间的语义距离。
关于haskell - 推拉式和箭头式FRP的根本区别是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26164135/