首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReactiveX被认为是反应性编程吗?

ReactiveX被认为是反应性编程吗?
EN

Stack Overflow用户
提问于 2016-02-26 07:59:33
回答 1查看 2.7K关注 0票数 22

来自ReactiveX简介页

它有时被称为“函数式反应性编程”,但这是用词不当。ReactiveX可能是功能性的,也可能是反应性的,但是“功能性反应编程”是一种不同的动物。一个主要的不同点是函数式反应编程对随时间而不断变化的值进行操作,而ReactiveX则对随时间而发出的离散值进行操作。

同时,在维基百科的功能反应编程页面中,“实现”部分列出了ReactiveX:

实施

  • cellx,超高速实现javascript的反应性
  • 可编译为HTML、CSS和JavaScript的Elm、FRP语言
  • Frappuccino FRP在Ruby中的实现
  • 行为/事件玻璃钢在JavaScript中的实现
  • Reactive.jl、FRP在朱莉娅中的实现
  • ReactiveX、玻璃钢在多种语言中的实现,包括Java、JavaScript、Python、Swift和更多的
  • 活性香蕉FRP在Haskell中的实现
  • ReactiveCocoa玻璃钢在Swift和Objective中实现
  • ReactiveKit玻璃钢的纯Swift实现
  • 反射式FRP在Haskell中的实现
  • Scala.Rx玻璃钢在Scala (和Scala.js)中的实现
  • 钠,玻璃钢在C#,C++,Haskell (deprecated12),Java,> Rust和Scala中的实现
  • 山帕玻璃钢在Haskell的实施

我非常理解ReactiveX所做的工作,并对“反应性编程”和“函数式反应编程”进行了一些研究,但我仍然无法区分它们之间的关系。

事实上,我认为维基百科页面用词不当,或者在“实现”部分中列出了错误的例子,因为我知道细胞ReactiveX (都列在示例中)是为了解决完全不同的问题而构建的。

EN

回答 1

Stack Overflow用户

发布于 2016-02-26 11:03:59

反应性香蕉库的作者。

功能反应规划(RP)和反应规划(RP)的关键区别在于前者具有定义良好的表示语义,通常是从类型中获得的。

代码语言:javascript
复制
type Behavior a  ~=  Time -> a
type Event    a  ~=  [(Time, a)]

而后者没有一个定义良好的表示语义。特别是,我所知道的所有RX实现都存在合并事件流不确定的问题:当流包含同时发生的事件时,有时一个事件在另一个事件之前合并,有时则相反。

此外,关于“玻璃钢作用于随着时间而不断变化的价值”的说法微妙地不正确,而不是关键的区别:

  • 首先,该语句最有可能的解析是“行为是连续函数Time -> a",这不是真的:行为可以是dis_continuous,例如,它们可以是step函数。实际上,玻璃钢中的Time通常被视为实数,即值的_continuum。
  • 第二,玻璃钢在时间离散的情况下是完全可能的。这不是RP的关键区别,相反,这完全取决于您对值的操作是否具有定义良好的表示语义。
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35646413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档