gpt4 book ai didi

reactive-programming - ReactiveX 被认为是响应式(Reactive)编程吗?

转载 作者:行者123 更新时间:2023-12-03 13:28:38 27 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

6年前关闭。




Improve this question




来自 ReactiveX introduction page :

It is sometimes called “functional reactive programming” but this is a misnomer. ReactiveX may be functional, and it may be reactive, but “functional reactive programming” is a different animal. One main point of difference is that functional reactive programming operates on values that change continuously over time, while ReactiveX operates on discrete values that are emitted over time.



同时,来自 Wikipedia's Functional Reactive Programming page , ReactiveX 列在“实现”部分:

Implementations[edit]

  • cellx, Ultra-fast implementation of reactivity for javascript
  • Elm, FRP language that compiles to HTML, CSS, and JavaScript
  • Frappuccino FRP implementation in Ruby
  • Flapjax, behavior/event FRP implementation in JavaScript
  • Reactive.jl, FRP implementation in Julia
  • ReactiveX, FRP implementation in multiple languages, including Java, JavaScript, Python, Swift and many more
  • reactive-banana FRP implementation in Haskell
  • ReactiveCocoa FRP implemented in Swift and Objective-C
  • ReactiveKit FRP implemented in pure Swift
  • Reflex FRP implementation in Haskell
  • Scala.Rx FRP implementation in Scala (and Scala.js)
  • Sodium, FRP implementation in C#, C++, Haskell (deprecated[12]), Java, > Rust, and Scala
  • Yampa FRP implementation in Haskell


我很了解 ReactiveX 是做什么的,也对“响应式(Reactive)编程”和“函数式响应式(Reactive)编程”做了一些研究,但我仍然无法区分它们之间的关系。

事实上,我有点相信 Wikipedia 页面是用词不当,或者错误地列出了“实现”部分中的示例,因为我知道 cellxReactiveX (都在示例中列出)旨在解决完全不同的问题。

最佳答案

react 香蕉库的作者在这里。

函数式响应式(Reactive)编程 (FRP) 和响应式(Reactive)编程 (RP) 之间的主要区别在于前者具有明确定义的指称语义,通常从类型中获得

type Behavior a  ~=  Time -> a
type Event a ~= [(Time, a)]

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

此外,“FRP 对随时间不断变化的值起作用”的说法既有点不正确,也不是关键区别:
  • 首先,该语句最可能的解析是“行为是连续函数Time -> a”,这是不正确的:行为可以是不连续的,例如它们可以是阶跃函数。相反,真实的是 Time在 FRP 中通常被认为是一个实数,即一个连续的值。
  • 其次,完全有可能拥有时间离散的 FRP。这不是 RP 的关键区别,而是关于您对值的操作是否具有明确定义的指称语义。
  • 关于reactive-programming - ReactiveX 被认为是响应式(Reactive)编程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35646413/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com