(defun iter+ (n m)
(if (= n 0) ; базис рекурсии
m
(iter+ (1- n) (1+ m))))
(iter+ 3 4)
→ (iter+ 2 5)
→ (iter+ 1 6)
→ (iter+ 0 7)
→ 7
Итеративный процесс можно описать:
Фиксированный объём памяти нужно понимать с оговоркой. Наивная реализация рекурсии с помощью стека вызовов означает линейный рост и памяти. Но многие Лисп-компиляторы осуществляют оптимизацию концевой рекурсии (tail recursion). Преобразованные вычисления, действительно, будут выполнятся как итеративный процесс и требовать фиксированный объем памяти.