Clojure 使用pmap增加计数器但忽略的值

Clojure 使用pmap增加计数器但忽略的值,clojure,Clojure,那么,为什么富不是10003呢 与懒惰有关吗?来自pmap的文档: 半懒惰,因为并行计算保持在消耗之前,但不 除非需要,否则实现整个结果。仅适用于 计算密集型函数,其中f的时间占主导地位 协调开销 所以是的,它只是实现了一些元素。尝试将pmap包装在doall中,您将看到预期的结果 (swap! foo (fn [old] 3)) (pmap (fn [_] (swap! foo inc)) (range 10000)) @foo ;It prints 1027, whic

那么,为什么富不是10003呢


与懒惰有关吗?

来自
pmap
的文档:

半懒惰,因为并行计算保持在消耗之前,但不
除非需要,否则实现整个结果。仅适用于
计算密集型函数,其中f的时间占主导地位
协调开销

所以是的,它只是实现了一些元素。尝试将
pmap
包装在
doall
中,您将看到预期的结果

(swap! foo (fn [old] 3))

(pmap
 (fn [_] (swap! foo inc))
 (range 10000))

@foo        ;It prints 1027, which is smaller than 10000.