86

我最近一直在对反应式编程进行一些研究,我发现很难找到对反应式和功能反应式之间区别的良好描述。

仅仅是使用函数方法/范式而不是使用声明式或 OO 范式来实现反应式编程吗?

4

2 回答 2

80

功能响应式编程(FRP)是具有特定语义的特定编程模型。(实际上,有两种变体,有时称为“经典 FRP”和“箭头 FRP”。)我在“什么是(函数式)反应式编程?”的答案中给出了一个总结。. 正如我在那里所说,对我来说两个关键属性一直是(a)精确和简单的外延和(b)连续时间。我很遗憾这种模型后来被称为“函数式反应式编程”,原因如下:

  • 这个名字省略了“时间”,而时间对我来说是核心。
  • “功能”一词几乎没有具体/明确的含义。我更喜欢彼得兰丁建议的替换“外延”。(请参阅此博客评论中的引用和参考。)
  • 人们很容易错误地认为他们知道这个词的含义,因为他们知道(或多或少)这三个词中的每一个的含义。

对于描述性和准确性,我更喜欢术语“指示性连续时间编程”(由 Jake McArthur 在不久前的一次对话中建议)而不是“函数式反应式编程”。

我在博客文章早期灵感和函数反应式编程的新方向中写了一篇关于 FRP 起源的非常短的文章。

于 2011-03-22T04:43:19.190 回答
29

FRP 是函数式编程(基于一切都是纯函数思想的编程范式)和反应式编程范式(基于一切都是流的思想(观察者和可观察哲学))的组合。它被认为是两全其美的。

两者的定义更清楚地区分了两者。

于 2017-12-08T18:53:30.637 回答