Adding to weavejester comment, back-pressure is to be handled with core.async channels [1]. I guess in Rich's terms, RX/FRP "complects" the communication of messages with flow of control [2]. Although this last statement may not be true anymore given that RX now has many functions to control the scheduler (eg. observeOn/buffer/delay, etc).
[1] http://clojure.com/blog/2013/06/28/clojure-core-async-channe... [2] http://stackoverflow.com/questions/20632512/comparing-core-a...
Re:Clojure 1.7 is now available
by weavejester on Tuesday June 30, 2015 @07:15PM
(#9809001)
Transducers are, I believe, largely orthogonal to back-pressure concerns. They describe only how transform the data at each step.
That's not correct, because if they described only how to transform the data at each step, then you couldn't describe `take` or `flatMap`.
Re:Clojure 1.7 is now available
by weavejester on Sunday July 05, 2015 @06:33AM
(#9833119)
Because Clojure isn't a pure functional language, transducers may be stateful. `take` uses a volatile (i.e. a fast, mutable variable) to retain state. I don't believe a `flatMap` transducer exists in Clojure yet.
That said the concept is pretty cool and we shouldn't fear learning new things. After all, the whole point of learning a new programming language is to be exposed to new ways of solving problems, otherwise why bother?