推荐阅读/教程以了解反应性香蕉 FRP 库 [关闭]
Posted
技术标签:
【中文标题】推荐阅读/教程以了解反应性香蕉 FRP 库 [关闭]【英文标题】:Recommended reading/tutorials to understand reactive-banana FRP library [closed] 【发布时间】:2012-03-01 21:31:49 【问题描述】:我对 FRP(函数响应式编程)reactive-banana haskell 库很感兴趣。你会推荐一个新手阅读什么来理解反应香蕉背后的理论?据我了解,这个领域已经取得了一些进展,不同的 FRP 库使用不同的方法,所以我认为任何 FRP 论文都不会这样做。
【问题讨论】:
+1 仅用于名称“反应性香蕉”。我对FRP一无所知,所以我也很欣赏那里的人。 【参考方案1】:不幸的是,我还没有编写任何全面的文档或教程,主要是因为响应式香蕉库仍在不断变化。
这意味着,目前,您必须在相当强大的 Haskell 知识的支持下,自己从各种来源中找出问题。我可以在这里做的是列出各种来源和灵感。
可直接用于反应香蕉的文档
真的很短 introduction — 主要回答了“为什么我需要了解 Applicative Functors 才能理解 reactve-banana?”的问题 Tutorial slides [PDF] — 解释和可视化行为和事件的概念 API Reference Example Code — 示例一开始很简单,对于理解库非常有用。 Model implementation — 查看源代码。有助于了解编程模型的细节。由于反应香蕉是基于 Conal Elliott 的作品,他的作品是一个很好的来源
"Functional Reactive Animation" — FRP 概述虽然有些过时,但一般。 "Declarative event-oriented programming" — 演示 FRP 用于 GUI 编程的实用示例。对一般编程哲学的出色介绍。 "Push-pull functional reactive programming" — 很好的读物,有助于了解模型如何根据应用程序和其他仿函数映射到 API。【讨论】:
谢谢。这就是我一直在寻找的——你自己用来制作这个库的资源。 如果您确实设法建立了全面的文档,那么也许您可以通过出售它来赚一些额外的钱,就像一本 Yesod 书。 @DanBurton:好主意!不过,需要非常全面才能有资格成为一本书。我会想办法的。 你也有某种***或维基书吗?这是组织志愿信息的好方法。 @TingL Haskell wiki 可用于此目的。【参考方案2】:基本上有两种来源:
-
Conal Elliott 的论文“Simply Efficient Functional Reactivity”(以及导致此论文的 Conal 的其他工作)。
Apfelmus 的博客。文章“Reactive Banana and the Essence of FRP”可能是一个很好的起点。
reactive-banana 的设计和语义大量借鉴了 Conal 的论文和他的“reactive”库(从 reactive-banana-0.2 开始)。 Apfelmus 博客上的 cmets 讨论了这背后的许多原因,以及库之间的差异。不幸的是,“reactive”有一些与它的“switcher”功能相关的不良行为,所以它被排除在reactive-banana之外。关于这个问题的性质和解决方法已经有很多研究了,看起来reactive-banana-0.5 可能会引入一些版本的“switcher”。
【讨论】:
递归!这个问题起源于对 Apfelmus 博客的评论,他回答说“在 SO 上转发,我会在那里回答”。 Apfelmus 的帖子热切期待...... 对我来说,“Functional Reactive Animation” (conal.net/papers/icfp97) 比 Simply Efficient 论文更好地介绍了 FRP。虽然实现方式不同,但是前者的思路和灵感都很清晰。【参考方案3】:这不是反应香蕉,但我发现这个系列有助于理解 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-declarative-game-logic-afrp.md
【讨论】:
【参考方案4】:我写过关于 FRP 和反应性香蕉的博客。 看看这里,看看它是否有用:
http://alfredodinapoli.wordpress.com/2011/12/24/functional-reactive-programming-kick-starter-guide/
HTH,
一个。
【讨论】:
【参考方案5】:我和你在同一条船上,我在寻找资源时找到了"FRP explanation using reactive-banana"。它针对 FRP 初学者。
【讨论】:
【参考方案6】:最近我将我的“流式传输”包移植到了“reactive-banana”。该软件包旨在实时处理 MIDI 消息,例如用于生成伴奏、音乐游戏和一些有趣的效果。
http://code.haskell.org/~thielema/reactive-balsa/
我是如何开始学习响应式香蕉的?我刚问了包的作者,他很友好地帮我做了第一步。迈出第一步后,我发现包的 Haddock 文档非常有帮助。现在您可以在包作者和我之间进行选择,为您提供有关如何开始使用响应式香蕉的初步提示。 :-)
【讨论】:
以上是关于推荐阅读/教程以了解反应性香蕉 FRP 库 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章