Практическое использование функции сворачивания / сокращения в функциональных языках

Fold (он же reduce ) считается очень важной функцией высшего порядка. Карта может быть выражена в терминах складки ( см. Здесь ). Но для меня это звучит скорее академично, чем практично. Типичное использование может заключаться в получении суммы, произведения или максимального числа чисел, но эти функции обычно принимают любое количество аргументов. Так зачем писать (fold + 0 '(2 3 5)) , когда (+ 2 3 5) работает нормально. Мой вопрос: в какой ситуации проще или естественнее всего использовать fold ?

9
задан Adam Schmideg 16 March 2011 в 21:05
поделиться