4 ms·
It's not a pedantic distinction given how much the term has been overloaded to refer to dissimilar concepts.
by rwosync 12y ago
It's not a pedantic distinction given how much the term has been overloaded to refer to dissimilar concepts.
- platz 12y agoWe should just have separate terms for Discrete vs Continuous flavors instead of fighting over the one true "FRP"
- seanmcdirmid 12y agoIt's not just that. Elm and Rx lack continuous value streams at all, they are completely discrete; also they are very much asynchronous, so they are more like the event stream manipulation done via data flow in the 70s rather than what Elliott and Hudak invented in the late 90s. For something to be called FRP, they at least need both continuous and discrete abstractions; the simplest description of FRP involves re-evaluation A + B over time, which is not meaningful in Rx or Elm, really.
- jules 12y agoIt's meaningful in Elm.
- seanmcdirmid 12y agoI would love to see an example. I've browsed Evans' thesis, and it seems like he explicitly avoids continuous abstractions (behaviors) for event processing.
- jules 12y agoHere is an example: http://elm-lang.org/edit/examples/Reactive/Position.elm http://elm-lang.org/edit/examples/Reactive/Position.elm In Elm behaviors and events are the same thing. Usually operations like filter and fold are only on events, and applicative functor and monadic operations are only on behaviors, but in Elm one type support filter and fold and the applicative functor operations, and monadic bind is not supported at all. I don't think that's good design, but it does mean that Elm has the functionality of both events and behaviors.