我正在阅读1.5中介绍的有关clojure reducer的内容:https://github.com/clojure/clojure/blob/master/changes.md.我的理解是它们是对现有map/filter/reduce函数的性能增强.因此,如果是这种情况,我想知道他们为什么在新的命名空间中,并且不要简单地替换现有的map/reduce/filter实现.换句话说,为什么我不选择使用新的Reducer功能呢?
编辑:
针对初步的两个答案,这里有一个澄清:
我将在这里引用发行说明:
Reducers提供了一组用于处理集合的高性能函数.实际的折叠/减少算法通过减少的集合来指定.这允许每个集合定义减少其内容的最有效方法.
这对我来说听起来并不像新的map/filter/reduce函数本质上是并行的.例如,在发行说明中进一步说明:
它包含一个新的函数fold,它是一个并行的reduce + combine
因此,除非发行说明写得不好,否则在我看来有一个新功能,fold,它是并行的,而其他功能是特定于集合的实现,旨在为特定集合产生最高性能.我只是误读了这里的发行说明吗?