在Strange Loop presentation on Transducers Rich Hickey中提到了一个名为“并行”的表中的概念。
您可以使用examples of seqs and into and channels轻松查看transducers。
现在你可以找出Observables are talking about RxJava了。
我的问题是什么是' parallel' Rich Hickey的传感器中的概念Strange Loop talk?这是futures或pmap或其他内容的列表吗?
答案 0 :(得分:11)
有关于创建并行转换过程的一些想法。这被跟踪为CLJ-1553。目前我们不打算在Clojure 1.7中解决这个问题,但是想在Clojure 1.8中做些什么。
现在可以设置一个使用传感器作为底部减少阶段的减速器(以及更传统的组合器fns),但理想情况下我们将能够利用持久性矢量和地图所体现的“自我可简化”概念以更自然的方式支持并行转换。
现在很可能会出现这种情况,但还有很多事情需要决定。
一个有问题的领域是处理kv形式 - 减速器在那里做了一些选择,这些选择对于传感器来说是困难的或不方便的,因此需要通过。
答案 1 :(得分:7)
这个概念就是并行执行计算的概念。有多种可能的实现:
clojure.core.reducers/fold
,类似于reduce
,但它只应与关联约简函数一起使用,并且它由一个协议支持,该协议利用各种Clojure数据结构的树结构来并行化计算工作量。它实际上并不适合传感器,但它对减速器非常友好,似乎最终会有一个启用传感器的版本。
最近发布的带有换能器支持的core.async
版本导出了一个名为pipeline
的函数,该函数并行化了基于通道→通道传感器的转换。