2024 Clojure 状态调查 中分享你的看法!

欢迎!请参阅 关于 页面以了解此功能的更多信息。

0
Clojure

这两个应该是相同的

(transduce (comp (take 10) (partition-all 3)) conj (range))
;; => (链接: [0 1 2) (链接: 3 4 5) (链接: 6 7 8) (链接: 9])

(reduce conj (r/reducer (range) (comp (take 10) (partition-all 3))))
;; => (链接: [0 1 2] [3 4 5] [6 7 8])

原因是 r/reducer 目前不尊重 xf 的 1-arity 情况。

2 答案

0
_由 glts_ 发表评论

对于 plain reduce 也是如此


(reduce ((partition-all 3) conj) [] (range 10))
; => [[0 1 2] [3 4 5] [6 7 8]]


我相信 completion 是 transduce 的一个特性,不一定适用于其他可转型的过程。
0
参考: https://clojure.atlassian.net/browse/CLJ-2338(由 gzmask 报告)
...