Итак, Я любитель, который пытается работать через SICP (он бесплатный!), и есть пример процедуры в первой главе, которая предназначена для подсчета возможные способы внесения изменений в американские монеты; (change-maker 100) = > 292. Он реализовал что-то вроде:
(define (change-maker amount)
(define (coin-value n)
(cond ((= n 1) 1)
((= n 2) 5)
((= n 3) 10)
((= n 4) 25)
((= n 5) 50)))
(define (iter amount coin-type)
(cond ((= amount 0) 1)
((or (= coin-type 0) (< amount 0)) 0)
(else (+ (iter amount
(- coin-type 1))
(iter (- amount (coin-value coin-type))
coin-type)))))
(iter amount 5))
В любом случае; это рекурсивная процедура, и автор "бросает вызов", ища итеративную процедуру для решения одной и той же задачи (т.е. фиксированного пространства). Мне не посчастливилось выяснить это или найти ответ после разочарования. Мне интересно, если это мозг пердеть с моей стороны, или если автор напортачил со мной.