【问题标题】:Can Functional Reactive Programming (FRP) be emulated to any degree in an imperative language?功能反应式编程(FRP)可以在命令式语言中进行任何程度的模拟吗?
【发布时间】:2014-06-17 12:47:43
【问题描述】:

我了解,并非函数式响应式编程 (FRP) 的每个组件都可以在大多数命令式语言中实现,这完全取决于语言的设计方式。

但是,是否可以使用 C# 中的事件来实现类似的效果,其中某些输入值的更改会级联以更新各种对象?还是我已经回答了我的问题,除了“观察者”模式的变体之外,真的没有什么可以做的了?除了 C# 之外的其他命令式语言(我只是出于熟悉而在此提及)呢?

【问题讨论】:

  • 认识 .NET 的 Reactive Extensions (Rx)
  • 相反,具有命令式功能有助于 FRP 的实现——但在事情已经随时间变化的命令式面向对象设置中,对 FRP 的需求较少。
  • 我补充一下,看看 Scala 中的 FRP,它毫不掩饰地使用了命令式特性。

标签: c# design-patterns functional-programming frp imperative-programming


【解决方案1】:

反应式编程并非特定于函数式语言,就像函数式编程并非特定于纯粹的 FP 语言一样。 Python、D、C# 和许多其他结构/OOP 语言在不同程度上允许函数式代码,许多其他语言都有 FP 库。

如果你用谷歌搜索,你会发现很多语言的响应式库。

【讨论】:

  • OP 专门要求 FRP,而不仅仅是 RP。
  • @Bergi 这几乎没有什么区别。 FRP 只是使用 FP 风格的代码完成的 RP。
  • 不完全是。 RP 库的风格完全不同,因为您不能真正将事件推送到任何地方。
  • 这不是具体的实现细节吗?
  • 不,这是一个设计决定。并且同样会影响您的应用程序代码的设计。
猜你喜欢
  • 2015-04-02
  • 2011-08-18
  • 1970-01-01
  • 2013-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-23
  • 1970-01-01
相关资源
最近更新 更多