Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Programming languages 反应式编程与函数式反应式编程的区别_Programming Languages_Functional Programming_Paradigms_Reactive Programming - Fatal编程技术网

Programming languages 反应式编程与函数式反应式编程的区别

Programming languages 反应式编程与函数式反应式编程的区别,programming-languages,functional-programming,paradigms,reactive-programming,Programming Languages,Functional Programming,Paradigms,Reactive Programming,我最近一直在做一些关于反应式编程的研究,我发现很难找到一个好的描述来描述反应式编程和功能性编程之间的区别 反应式编程是使用函数方法/范例实现的,而不是使用声明式或OO范例实现的吗 函数式反应式编程(FRP)是一种具有特定语义的特定编程模型。 (实际上,有两种变体,有时称为“经典FRP”和“箭头FRP”。) 我在报告中作了总结。 正如我在那里所说,对我来说,两个关键属性一直是(a)精确和简单的表示和(b)连续时间。 我很遗憾这种模式被称为“功能性反应式编程”,原因如下: 这个名字省略了“时间”,

我最近一直在做一些关于反应式编程的研究,我发现很难找到一个好的描述来描述反应式编程和功能性编程之间的区别


反应式编程是使用函数方法/范例实现的,而不是使用声明式或OO范例实现的吗

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

  • 这个名字省略了“时间”,时间是我的中心
  • “功能性”一词几乎没有什么具体/明确的含义。 我更喜欢彼得·兰丁建议的替换词“外延”。 (请参阅中的引号和参考。)
  • 人们很容易错误地认为他们知道这个词的意思,因为他们知道这三个词的意思(或多或少)
为了描述性和准确性,我更喜欢术语“外延式连续时间编程”(Jake McArthur不久前在一次对话中提出)而不是“函数式反应式编程”


我在博客中写了一篇关于FRP起源的短篇文章。

FRP是函数式编程(基于一切都是纯函数的思想构建的编程范式)和反应式编程范式(基于一切都是流的思想构建的(观察者和可观察哲学))。它被认为是两个世界中最好的


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

great overview:)你能更深入一点吗?我喜欢你的解释,但当我使用reactiveX(例如RxJava)时,我是被动的,但不一定是功能性的?因为在反应函数(链)中,我仍然可以有副作用或者是非幂等函数(非函数性的)。您所假设的是正确的@BenButterworth使用RxJava,或者任何反应库都不能保证函数行为。开发者有责任确保没有副作用。