min() functions are—in a way— all specializations of a more general algorithm expressed by the
reduce() function. The
reduce() function is a higher-order function that folds a function into each pair of items in an iterable.
A sequence object is given as follows:
d = [2, 4, 4, 4, 5, 5, 7, 9]
reduce(lambda x,y: x+y, d), will fold in
+ operators to the list as follows:
() can show the effective grouping as follows:
Python's standard interpretation of expressions involves a left-to-right evaluation of operators. The fold left isn't a big change in meaning.
We can also provide an initial value as follows: