I'm interested in FRP (Functional Reactive Programming) reactive-banana haskell library. What would you recommend reading for a newbie to understand theory behind reactive-banana? As I understand, there have been some progress in this field and different FRP libraries use different approaches, so I don't think that any FRP paper would do.
6 回答
不幸的是,我还没有编写任何全面的文档或教程,主要是因为反应香蕉库仍然有些变化。
这意味着,目前,您必须在相当强大的 Haskell 知识的支持下,自己从各种来源中找出问题。我可以在这里做的是列出各种来源和灵感。
可直接用于反应香蕉的文档
- 非常简短的介绍——主要回答了“为什么我需要了解 Applicative Functors 才能理解 reactve-banana?”这个问题。
- 教程幻灯片 [PDF] — 解释和可视化行为和事件的概念
- API 参考
- 示例代码——示例开始很简单,对于理解库非常有用。
- 模型实现——查看源代码。有助于理解编程模型的细节。
由于反应香蕉是基于 Conal Elliott 的作品,他的作品是一个很好的来源
- “Functional Reactive Animation” — 对 FRP 的一般性但有些过时的概述。
- “面向事件的声明式编程” — 演示 FRP 用于 GUI 编程的实用示例。对一般编程哲学的优秀介绍。
- “Push-pull 函数式反应式编程” — 很好的读物,有助于理解模型如何根据应用程序和其他仿函数映射到 API。
基本上有两个来源:
- Conal Elliott 的论文“ Simply Efficient Functional Reactivity ”(以及导致该论文的 Conal 的其他工作)。
- Apfelmus 的博客。文章“ Reactive Banana and the Essence of FRP ”可能是一个很好的起点。
reactive-banana 的设计和语义很大程度上来自 Conal 的论文和他的“reactive”库(从 reactive-banana-0.2 开始)。在 Apfelmus 博客的评论中讨论了这背后的许多原因,以及库之间的差异。不幸的是,“reactive”有一些与它的“switcher”功能相关的不良行为,所以它被排除在reactive-banana之外。对这个问题的性质以及如何解决它进行了大量研究,看起来reactive-banana-0.5可能会引入某些版本的“switcher”。
这不是反应香蕉,但我发现这个系列有助于理解 FRP,从头开始构建一个小型乒乓球游戏。
https://github.com/leonidas/codeblog/blob/master/2012/2012-01-08-streams-coroutines.md https://github.com/leonidas/codeblog/blob/master/2012/2012-01 -17-声明性游戏逻辑 afrp.md
我写过关于 FRP 和反应性香蕉的博客。看看这里,看看它是否有用:
http://alfredodinapoli.wordpress.com/2011/12/24/functional-reactive-programming-kick-starter-guide/
高温下,
一个。
我和你在同一条船上,我在寻找资源时发现了“使用反应香蕉的 FRP 解释” 。它针对 FRP 初学者。
最近我将我的“流媒体”包移植到了“reactive-banana”。该软件包旨在实时处理 MIDI 消息,例如生成伴奏、音乐游戏和一些有趣的效果。
http://code.haskell.org/~thielema/reactive-balsa/
我是如何开始学习反应香蕉的?我刚问了包的作者,他很友好地帮我做了第一步。迈出第一步后,我发现包的 Haddock 文档非常有帮助。现在您可以在包作者和我之间进行选择,为您提供有关如何开始使用响应式香蕉的初步提示。:-)