Python 中函数响应式编程的现状如何?

Posted

技术标签:

【中文标题】Python 中函数响应式编程的现状如何?【英文标题】:What is the status of Functional Reactive Programming in Python? 【发布时间】:2015-11-30 03:31:25 【问题描述】:

我找到了this 论文(“Practical Functional Reactive Programming”),作者(据我所知)尝试本着Yampa 的精神用 Python 创建一个 FRP 库。

我还发现了these SPJ 的有趣幻灯片!幻灯片似乎得出结论,用动态类型语言实现 FRP 并不容易 - 不幸的是,这些幻灯片中的项目符号并没有真正解释原因。

为什么在 Python 中显然没有那么多 FRP 实现?为什么它在 Haskell 中更流行? FRP 真的需要静态类型吗?我们通过 FRP 中的静态类型获得了多少收益?它是超级必要的还是没有它也能过得去(如果一个人只写几千行 FRP 代码)?

我真的很想知道,如果SodiumFRP 可以用 C、Java、Haskell 等实现,那么 Python 有什么问题?

需要注意的是,目前(2015.08.04)在 JS 中也没有真正的 FRP 实现,这表明 Python 中缺少静态类型是原因,但我不相信,因此问题。

更新: 有趣的是,我在 Python 中遇到过Flow Based Programming。 FBP 和 FRP 如何相互关联?它们似乎只有一点点不同,至少,当我比较首字母缩略词中间字符的底部时,我有这样的第一印象。

【问题讨论】:

您的第二个“this”是否错过了链接?我找到了关于 this 主题的这篇论文,但我没有找到任何关于可用内容的评论。 绝大多数 Python 社区对函数式编程没有特别的兴趣,除了地图和折叠之类的基本操作。这不是那种 FRP(目前仍处于研究阶段)会变得非常受欢迎的社区。​​span> 请注意,正如 André Staltz 在gist.github.com/staltz/868e7e9bc2a7b8c1f754 指出的那样,FRP 和 RP 之间存在差异,如果您对 RP 感兴趣,那么值得一读。这在第二条评论中提到,他说 FRP 是 RP 的功能编程变体。我理解这意味着 FRP 是实现 RP 的一种方式,并且两者都具有一组共同的特征,例如就 TypeSafe 的响应式宣言而言,事件驱动、响应式、可扩展性和弹性,请参阅slideshare.net/deanwampler/…。 我认识安德烈,我们共同组织meetup.com/Helsinki-Functional-Reactive-Programming-Meetup。我的问题仅限于 FRP。 @jhegedus 不要责怪闭门器。我投票决定重新打开,但我花了一段时间(以及 Haskell 问题的链接)才决定这不是一个“懒得搜索”的问题。另一个问题要具体得多。例如,它不仅链接到一些文章,它还提供了其中内容的摘要。实际上,您的问题迫使人们阅读文章只是为了了解您的要求。你还需要说服另外两个,所以我建议你改进这个问题 【参考方案1】:

"The Reactive Extensions for Python (RxPY)" 恕我直言,最接近使用 Python 的 FRP。

【讨论】:

【参考方案2】:

还有aioreactive,它利用了更新的语言功能,例如异步/等待。

【讨论】:

以上是关于Python 中函数响应式编程的现状如何?的主要内容,如果未能解决你的问题,请参考以下文章

厉害了,Spring 5 面向响应式编程!

Spring Boot (十四): 响应式编程以及 Spring Boot Webflux 快速入门

在Python中探索函数式响应型编程(FRP)

深入浅出iOS函数式编程与响应式编程概念

响应式设计的现状与趋势

响应式设计的现状与趋势