Fold (higher-order function)
In functional programming, a fold is a higher-order function that analyzes a recursive data structure and, through use of a given combining operation, recombines the results of recursively processing its constituent parts, building up a return value. Fold is also termed as reduce, accumulate, aggregate, compress, or inject.
Source: Wikipedia — Fold (higher-order function) (CC BY-SA 4.0)