One of the core functions in Clojure is reduce. It allows you to build up some result based on applying a function to each value in a collection. Clojure provides a similar function that builds up a (lazy) sequence of intermediate values as it is performing a reduce. This function is reductions.
Using reduce to sum a collection of integers looks like this
> (reduce + 0[12345])=> 15
whereas reductions performing the same task will look like this