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

キーワード