Clojure 中传感器内的 Pmap

Joa*_*uin 3 clojure pmap transducer

我想在转换器中使用 pmap,如果我使用常规地图编写代码,它工作正常。但是,如果我使用 pmap,则会出现 arity 异常。是否有可能在 clojure 中实现这一点,或者我做错了什么?如果这是不可能的,有人可以指出为什么会发生这种情况的文档吗?只是出于好奇。下面粘贴的是我的代码和 arity 异常的开头。

(def get-in-map (comp
              (pmap read-csv)
              ))
clojure.lang.Compiler$CompilerException: clojure.lang.ArityException: Wrong number of args (1) passed to: core/pmap, compiling:
Run Code Online (Sandbox Code Playgroud)

l0s*_*t3d 5

pmap 不支持用它创建转换器。如果你仔细想想,这是有道理的。您从 pmap 与 map 获得的并行化破坏了换能器的保证。它将并行上下文与过程描述相结合。如此处所述转换器将消费上下文与描述要完成的任务的代码分开。

传感器并行上下文的核心实现尚未实现:请参阅此票证。但是,您可以使用 core.async/pipeline 或 core.reducers/fold 自己创建一个。