我最近一直在对响应式(Reactive)编程进行一些研究,我发现很难找到响应式(Reactive)和函数式-响应式(Reactive)之间差异的良好描述。
响应式(Reactive)编程是否只是使用函数式方法/范式而不是使用声明式或面向对象范式来实现?
最佳答案
函数式响应式编程(FRP)是一种具有特定语义的特定编程模型。 (实际上,有两种变体,有时称为“经典 FRP”和“箭头 FRP”。) 我在 an answer to "What is (functional) reactive programming?" 中给出了总结。 正如我在那里所说的,对我来说两个关键属性始终是(a)精确和简单的表示以及(b)连续时间。 我很遗憾这个模型被称为“函数式响应式(Reactive)编程”,原因如下:
- 这个名字省略了“时间”,而时间对我来说至关重要。
- “功能性”一词几乎没有具体/明确的含义。 我更喜欢彼得·兰丁建议的替代“外延”。 (请参阅 this blog comment 中的引用和引用文献。)
- 人们很容易错误地认为他们知道该术语的含义,因为他们(或多或少)知道这三个词中每一个词的含义。
为了描述性和准确性,我更喜欢术语“指示性连续时间编程”(由 Jake McArthur 在不久前的一次对话中建议)而不是“函数式响应式(Reactive)编程”。
我在博文Early inspirations and new directions in functional reactive programming中写了一篇关于FRP起源的很短的文章.
关于programming-languages - 响应式(Reactive)编程和函数式响应式(Reactive)编程之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5385377/