haskell - 选择哪种 FRP 包?

标签 haskell frp reactive-banana

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。


7年前关闭。







Improve this question




我刚刚开始研究 Haskell 中的函数响应式编程世界,我想在 react 设置中尝试 GUI 编程(使用 gtk,因为大量绑定(bind))。

现在,我一直在研究 Grapefruit、Reactive-Banana 和 Buster,我想要任何关于使用任何一种或其他包装的快乐/恐怖的证明。

我只有这些初步意见:

  • 我不介意自己将 FRP 包绑定(bind)到 gtk,因为我对抽象的后端想法(Grapefruit 有)有一种矛盾的感觉。
  • 虽然我发现类型理论很有趣,但我也重视实际程序的简单编码,这似乎让 grapfruit-records 有点偏离..

  • 也就是说,除非你们中的一些人当然说服我不这么想:-)

    最佳答案

    如果您只想使用常规 FRP,并与 GUI 框架保持密切联系,而不是对其使用“预制”抽象,那么在我看来,reactive-banana 是最可行的选择。它明确地针对与现有框架的绑定(bind),专为“现实世界”使用而设计(不做任何过于实验性的、语义上可能导致问题的事情)等等。

    你可以看看reactive-banana-wx了解如何将基于事件的框架绑定(bind)到响应式香蕉。这很简单;我曾经写过一个到 Gtk2Hs 的快速绑定(bind)(不幸的是,现在丢失了代码),并且文件没有超过 50 行。这几乎是对 reactive-banana-wx 代码的直接音译。

    我建议不要使用 Buster,原因很简单,它 hasn't been updated since 2009 ,并且不基于 GHC 7。

    其他“面向生产”的 FRP 框架是 sodium (类似于 reactive-banana,但它有 dynamic event switching (即 coming to reactive-banana soon ,但还没有)和用于并发的“分区”概念;但是,它刚刚问世,还没有被采用) 和 netwire (箭头 FRP,与 active 香蕉和钠完全不同的生物)。

    关于haskell - 选择哪种 FRP 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10000074/

    相关文章:

    haskell - <<loop>> 错误 "work"的详细情况如何?

    haskell - 如何在reactive-banana中使行为包含其他行为

    haskell - react 香蕉 1.0 monadic API : How to define recursive behaviors now?

    javascript - 如果点击事件是在使用 Bacon.js 的拖动事件之后发生的,我该如何取消点击事件?

    javascript - bacon.js - 获取流/属性的值

    haskell - 使用响应式(Reactive)香蕉在 Haskell 中进行音频合成

    collections - Haskell "collections"语言设计

    parsing - *** 异常 : Prelude. 读取 : no parse in Haskell - Parsing, 表达式和递归

    haskell - 如何反射性地将输入值设置为当天?