Сочетание рекурсии и цикла

Рекурсивные определения функций оправдано там, где встречается естественная рекурсия в структурах данных или процессах.

Реализация итеративных процессов в виде древовидной рекурсии приводит к потере эффективности.

Чисто рекурсивная реализация иногда менее наглядна. На практике требуются не возвращаемые значения, а побочные эффекты.

Поэтому концевую рекурсию по хвосту списка стоит превратить в цикл, но сохранить рекурсию в отношении головы списка. Такое решение подчёркивает интерпретацию списка как упорядоченной последовательности, к каждому элементу которой рекурсивно применяется некоторое действие.