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 报告)
...