【发布时间】:2011-03-10 08:45:27
【问题描述】:
我了解reduce 和apply 之间的概念区别:
(reduce + (list 1 2 3 4 5))
; translates to: (+ (+ (+ (+ 1 2) 3) 4) 5)
(apply + (list 1 2 3 4 5))
; translates to: (+ 1 2 3 4 5)
但是,哪个更惯用的clojure?一种方式或另一种方式有很大的不同吗?从我的(有限的)性能测试来看,reduce 似乎要快一些。
【问题讨论】:
-
除非你有理由关心性能,否则基本上没关系。我更喜欢 +,因为它显示了 + 函数没有延迟,并且可以像你期望的那样接受任意数量的参数。
-
另外,在便携性方面考虑this answer到this question
标签: clojure