Язык программирования Python.

Функция reduce().

Для организации цепочечных вычислений (вычислений с накоплением результата) можно применять функцию reduce(), которая принимает три аргумента: функцию двух аргументов, последовательность и начальное значение. С помощью этой функции можно, в частности, реализовать функцию sum():

Def sum(lst, start):

 return reduce(lambda x, y: x + y, lst, start).

Совет: Следует помнить, что в качестве передаваемого объекта может оказаться список, который позволит накапливать промежуточные результаты. Тем самым, reduce() может использоваться для генерации последовательностей. 

В следующем примере накапливаются промежуточные результаты суммирования:

Lst = range(10).

F = lambda x, y: (x[0] + y, x[1]+[x[0] + y]).

Print reduce(f, lst, (0, [])).

В итоге получается:

(45, [0, 1, 3, 6, 10, 15, 21, 28, 36, 45]).