Я понимаю концептуальную разницу между 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
немного быстрее.