plc*_*plc 27 haskell frp reactive-banana
我刚刚开始研究Haskell中的功能反应编程世界,我想在反应环境中尝试GUI编程(使用gtk,因为实质性绑定).
现在,我一直在看Grapefruit,Reactive-Banana和Buster,我想要任何证明使用任何一个或其他包装的喜悦/恐惧.
我所拥有的只是这些初步的选择:
我不介意做一些FRP包的绑定给我自己,因为我对抽象的后端想法(Grapefruit有)有一种矛盾的感觉..
虽然我觉得类型理论很有意思,但我也很重视实际程序的简单编码,这似乎让grapfruit记录有点偏离..
也就是说,除非你们当中有些人说服我不这么认为:-)
ehi*_*ird 19
如果你只是想使用常规的FRP,并且靠近GUI框架而不是使用"预先制作"的抽象,在我看来,反应性香蕉是最可行的选择.它明确地面向绑定到现有框架,专为"现实世界"使用而设计(不做任何太实验,语义,可能导致问题的事情),等等.
您可以查看reactive-banana-wx,了解如何将基于事件的框架绑定到reactive-banana.这很简单; 我写了一个快速绑定到Gtk2Hs一次(不幸的是现在丢失了代码),文件没有超过50行.这几乎是反应性香蕉-wx代码的直接音译.
我建议不要使用Buster,原因很简单,因为它自2009年以来一直没有更新,并且没有建立在GHC 7上.
其他"以生产为导向"的FRP框架是钠(类似于反应性香蕉,但它具有动态事件切换(即将进入反应性香蕉,但尚未进入)以及并发的"分区"概念;然而,它刚出来并且还没有看到采用)和netwire(箭头化的FRP,相当不同的生物反应香蕉和钠).
Orc*_*lev 12
我自己一直在尝试FRP,到目前为止,唯一能为我工作的是Reactive-Banana.我从来没有看过Grapefruit或其他大多数人,因为他们已经过时了,似乎根本不可能更新或支持它们.我简单地看了一下netwire,但坦率地说,它中的所有箭头理论都让我失望,我在弄清楚如何做简单的事情时遇到了很多麻烦.
相比之下,我设法在Reactive-Banana中编写了一套非常好的SDL绑定,一路上只有几个小问题.支持Reactive-Banana的另一个好处是,Heinreich在社区中非常活跃,并且在遇到问题时经常提供有用的答案.只需看看这里的各种反应性香蕉问题,你会看到他对其中的一些问题作出了回应,而且他通常在Haskell邮件列表中的FRP讨论中非常活跃.