programming-languages - 响应式(Reactive)编程和函数式响应式(Reactive)编程之间的区别

标签 programming-languages functional-programming paradigms reactive-programming

我最近一直在对响应式(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/

相关文章:

haskell - Lambda 微积分 (λa.b)((λx.xx)(λx.xx))

python - 还有什么其他语言可以与 Python 很好地协同作用?需要建议

java - 如何查看 "anti if"运动及其目标?

algorithm - 查找具有给定总和的子数组

model-view-controller - 是否可以在 iPhone、Android、Blackberry、Mac 和 Windows 之间编写共享库?

javascript - 使用 Ramda 根据条件更新嵌套值

oop - 面向方面编程与面向对象编程

rust - 如何在 Rust 中编写共享行为而不在每个模块中重复相同的代码?

c - 程序员如何在C之上开发出一种编程语言?

programming-languages - 在我的应用程序中标记和解析编程语言的最佳方法