TL;DR
reduceは、渡された関数を使ってシーケンスを 1 つの値やオブジェクトにまとめる。
内容
reduce は、渡された関数を使ってシーケンスを 1 つの値やオブジェクトにまとめる関数である。
(reduce + [1 2 3 4]) ; 10次の関数を定義して、
(defn add [a b]
(+ a b))次のように reduce に渡すと、
(reduce add [1 2 3 4])内部では次のようなコードが作られる。
(add 4 (add 3 (add 2 (add 1))))次はシーケンスのすべての値を掛け合わせる式である。
(defn multiply [a b]
(* a b))
(reduce multiply [1 2 3 4]) ; 24