【发布时间】:2014-11-08 17:31:30
【问题描述】:
我想了解函数式响应式编程很长一段时间(因为我一年前参加了 Reactive Coursera 课程)但我仍然不明白它的本质。
在这里,我将描述我目前对函数式编程与函数式反应式编程的理解,我想知道我是否走在理解函数式反应式编程本质的正确道路上,如果没有,那为什么不呢?
我想知道将函数式反应式编程视为使用微分方程进行编程是否是一个很好的类比。
换句话说,指定系统如何根据方程演化(以声明方式)。
在函数式编程中,计算是使用静态的、与时间无关的方程来描述的,而在函数式反应式编程中,一切都变得依赖于时间。因此,与其描述一个简单的函数,不如描述一个明确地依赖于时间的函数。
例如,在传统的函数式编程中,一种是使用没有副作用的纯函数进行编程。就像数学函数(从一组映射到另一组)。
例如f(x)=x^2。
但是,据我所知,在函数式反应式编程中,我不确定我是否理解正确,所以如果我没有正确理解,请纠正我,有人根据时间相关的离散微分方程描述计算。
例如,如果我想描述用户与屏幕上的球交互,该球可以沿一维移动 (x),那么我编写以下等式:
x(t)/dt=v(t)
v(t)/dt=a(t)
a(t)=F(t)/m
其中F(t) 是用户施加在球上的力。
如果我理解正确,函数式反应式编程的本质是从静态函数到时间相关函数,并用(离散)微分方程表达计算/算法。
我的这个理解正确吗?这真的是函数式反应式编程的精髓,还是还有更多?
【问题讨论】: