Skip to main content

reduce

functionv1.0

clojure.core/reduce

Available in:BBCLJCLJS
(reduce [f coll] [f val coll])
f should be a function of 2 arguments. If val is not supplied, returns the result of applying f to the first 2 items in coll, then applying f to that result and the 3rd item, etc. If coll contains no items, f must accept no arguments as well, and reduce returns the result of calling f with no arguments. If coll has only 1 item, it is returned and f is not called. If val is supplied, returns the result of applying f to val and the first item in coll, then applying f to that result and the 2nd item, etc. If coll contains no items, returns val and f is not called.
;; Sum until the running total exceeds 100, then stop.

(reduce (fn [acc n]
          (if (> acc 100)
            (reduced acc)
            (+ acc n)))
        0
        (range))
;;=> 105
CLJCLJSBBJacek Schae · Apr 25, 2026