Fold

(fold procedure value list) -> varies

Iteratively applies procedure to members of a list, and the result of the previous application. Value is used as the initial result. Returns the result of the final application.

Difficult to explain. Much easier to show a comparison example:

>>(* (* (* (* (* 1 1) 2) 3) 4) 5)
:: 120

A better way:

>>(fold * 1 '(1 2 3 4 5))
:: 120