据我了解,transducer 是一种在reduce
发生之前转换 reducer 函数的函数。换句话说,(transduce transducer reducer collection)
等价于(reduce (transducer reducer) collection)
。所以这两个表达式
(reduce ((map inc) -) 0 [3 4 5])
(transduce (map inc) - 0 [3 4 5])
必须返回相同的值。对?
错误的
(reduce ((map inc) -) 0 [3 4 5]) -15
(transduce (map inc) - 0 [3 4 5]) 15
错误还是功能?我的 Clojure 版本是1.8.0
.