Основное отличие leftfold и rightfold при работе с последовательностями данных заключается в порядке применения операции. 2
leftfold начинает объединять значения с левой стороны коллекции. 2 В этом случае результат рекурсивного объединения всех элементов, кроме последнего, объединяется с последним элементом. 1
rightfold начинает объединять значения с правой стороны коллекции. 2 В этом случае первый элемент коллекции объединяется с результатом сворачивания остальной части коллекции, и это повторяется на каждом шаге до достижения конца коллекции. 2
Если функция-аккумулятор ассоциативна, то leftfold и rightfold дадут одинаковый результат. 2 Однако если операция не ассоциативна, то результаты будут разными. 2
Также с точки зрения эффективности leftfold обычно более эффективен, так как является хвостовой рекурсивной, в то время как rightfold — нет. 23