SICP 問題 3.09
階乗を計算する手続き(factorial 6)
の環境構造を示す.
(define (factorial n) (if (= n 1) 1 (* n (factorial (- n 1)))))
反復
(define factorial (lambda (n) (fact-iter 1 1 n))) (define fact-iter (lambda (product counter max-count) (if (> counter max-count) product (fact-iter (* counter product) (+ counter 1) max-count))))