Rich Hickey的传感器Strange Loop谈话中的'并行'概念是什么?

时间:2014-10-21 11:07:41

标签: clojure transducer

Strange Loop presentation on Transducers Rich Hickey中提到了一个名为“并行”的表中的概念。

enter image description here

您可以使用examples of seqs and into and channels轻松查看transducers

现在你可以找出Observables are talking about RxJava了。

我的问题是什么是' parallel' Rich Hickey的传感器中的概念Strange Loop talk?这是futures或pmap或其他内容的列表吗?

2 个答案:

答案 0 :(得分:11)

有关于创建并行转换过程的一些想法。这被跟踪为CLJ-1553。目前我们不打算在Clojure 1.7中解决这个问题,但是想在Clojure 1.8中做些什么。

现在可以设置一个使用传感器作为底部减少阶段的减速器(以及更传统的组合器fns),但理想情况下我们将能够利用持久性矢量和地图所体现的“自我可简化”概念以更自然的方式支持并行转换。

现在很可能会出现这种情况,但还有很多事情需要决定。

一个有问题的领域是处理kv形式 - 减速器在那里做了一些选择,这些选择对于传感器来说是困难的或不方便的,因此需要通过。

答案 1 :(得分:7)

这个概念就是并行执行计算的概念。有多种可能的实现:

  1. clojure.core.reducers/fold,类似于reduce,但它只应与关联约简函数一起使用,并且它由一个协议支持,该协议利用各种Clojure数据结构的树结构来并行化计算工作量。它实际上并不适合传感器,但它对减速器非常友好,似乎最终会有一个启用传感器的版本。

  2. 最近发布的带有换能器支持的core.async版本导出了一个名为pipeline的函数,该函数并行化了基于通道→通道传感器的转换。