Свёртка списка

Свёртка списка (англ. folding, также известна как reduce, accumulate) в программировании — функция высшего порядка, которая производит преобразование структуры данных к единственному атомарному значению при помощи заданной функции. Операция свёртки часто используется в функциональном программировании при обработке списков. Свёртка может быть обобщена на произвольный алгебраический тип данных при помощи понятия катаморфизма из теории категорий.

Функция свёртки обычно принимает три аргумента: комбинирующую функцию f, начальное значение start и структуру данных seq (список — в простейшем варианте). В зависимости от свойств комбинирующей функции могут быть различные реализации и различные стратегии вычисления. Иногда функция свёртки не принимает начального значения, но требует непустого списка; но во многих случаях бывает нужным задать ненулевое начальное значение, которое будет использовано при первом применении комбинирующей функции. Использование начального значения необходимо, когда тип результата комбинирующей функции отличается от типа элементов списка, тогда начальное значение должно быть того же типа что и тип результата.

Источник: Википедия

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я