Rx如何与反应式编程相关?

Hap*_*mad 5 .net reactive-programming system.reactive

我已经读过反应式编程的基本思想,即基于源值表达式随时间变化的变量.我甚至使用表达式实现了这一点.但后来我看看微软的Reactive Extensions(Rx)并看到完全不同的东西.随着时间的推移,自我更新的变量在哪里?没有人看到.只是通过事件参数枚举的一些奇特方式.

所以我的问题是:Rx真的是"反应性"的吗?我们现在看到的功能现在是未来的前奏吗?或者是微软不小心抛出一个流行词?或者我完全忽略了这一点(在这种情况下,我希望你解释一下)?

编辑: 我已经得到了一些很好的答案与Rx的描述,此外问题被关闭.:(但我仍然希望听到更多的:

  1. 在什么意义上Rx"反应"?我认为自我更新变量是这个想法的核心,但Rx不提供这些.LINQ-to-Events似乎是Rx更好的名字.我开始认为,也许微软滥用"反应"一词将其应用于Rx.
  2. 当前的Rx功能可能以何种方式成为自我更新变量的前身?我实现了这样的功能,并没有注意到Rx为此目的有用的东西.

Jer*_*all 7

"Reactive"可能更像是一个流行词而不是任何东西,尽管它确实与另一种称为"功能反应式编程"的语言概念相吻合......

无论如何,Rx "是"已被比我更聪明的人所回答,但我会试一试:

  • 一开始,有事情; 这些东西已经形成,被称为POCO

  • 这些POCO的集合形成了,因此它们被命名IEnumerable<T>

  • "但事情是什么"人们呻吟和哀嚎,"他们不适合收藏和群体!我们必须创造奇怪和外星感觉的呼叫和响应处理程序来应对他们!"

  • 就在那时,TheErik,TheBart和其他人看着这些奇怪的事件并想到"嘿,我们可以让它们像POCO一样,因为它们只是镜像IEnumerable<T>!"

  • 这是的诞生IObservable<T>,双重的IEnumerable<T>(对于流"推"信息观察者,而不是观察者"揪"出来的项目)

  • 然后我厌倦了在"创世纪模式"中写作,那些真正聪明的人们捆绑了相同的monadic查询逻辑,形成了LINQ与"时间旅行"的能力ISchedulers并称之为"Rx"


Ree*_*sey 0

响应式编程基于“数据流”和“变化的传播”。

有多种方式可以表示这一点。Rx 框架基本上是重新审视传统的基于事件的范例作为事件的流式表示,并提供围绕它的操作。