FRP的本质:功能反应式编程是用(离散)微分方程编程的?

时间:2014-09-15 08:33:31

标签: reactive-programming

我试图长时间理解功能性反应式编程(因为我一年前参加了Reactive Coursera课程),但我仍然不理解它的本质

这里我将描述我目前对函数式编程与函数式反应式编程的理解,并且我想知道我是否正在理解函数式反应式编程的本质或不是,如果不是那么为什么不呢?

我想知道将函数反应式编程看作是用微分方程编程是否是一个很好的类比。

换句话说,指定系统如何根据方程式演变(以声明方式)。

在函数式编程中,使用静态的,与时间无关的方程描述计算,而在功能反应式编程中,一切都变得依赖于时间。因此,不是描述一个简单的函数,而是描述一个明确依赖于时间的函数。

例如,在传统的函数式编程中,一种是使用纯函数编程而没有副作用。就像数学函数(从一组到另一组的映射)。

例如f(x)=x^2

然而,在功能反应式编程中,根据我的理解,我不确定我是否理解正确,所以如果不是,请纠正我,用时间依赖的离散微分方程来描述计算。

例如,如果我想描述用户在屏幕上与球交互,这可以沿着一个维度(x)移动,那么我写下面的等式:

x(t)/dt=v(t)

v(t)/dt=a(t)

a(t)=F(t)/m

其中F(t)是用户施加在球上的力。

如果我理解正确,功能反应式编程的本质是从静态函数到时间相关函数,并用(离散)微分方程表达计算/算法。

我对此的理解是否正确?这真的是功能性反应式编程的本质,还是有更多呢?

1 个答案:

答案 0 :(得分:2)

请参阅my answer here(包含FRP的两个基本创始属性),并按照您找到的链接进行操作。