foldl
- это общая хвостовая рекурсивная функция сокращения. Рекурсия - это обычный способ управления списками элементов в функциональных языках программирования, который предоставляет альтернативу итерации цикла, которая зачастую гораздо более элегантна. В случае функции сокращения, такой как fold
, хвостовая рекурсивная реализация очень эффективна . Как объяснили другие, sum
- это просто удобная мнемоника для foldl (+) 0 l
.
Предположительно, его использование на странице википедии служит для иллюстрации общего принципа суммирования через хвостовую рекурсию. Но поскольку библиотека Haskell Prelude содержит sum
, что короче и более понятно для понимания, вы должны использовать это в своем коде.
Вот хорошее обсуждение функций Haskell fold
с простыми примерами, которые стоит прочитать.