SICP問題3.9
1.2.1節の階乗を計算する手続き
再帰版
(define (factorial n) (if (= n 1) 1 (* n (factorial (- n 1)))))
反復版
(define (factorial n) (fact-iter 1 1 n)) (define (fact-iter product counter max-count) (if (> counter max-count) product (fact-iter (* counter product) (+ counter 1) (max-count))))
それぞれの版を使って
(factorial 6)
を評価する時、作り出される環境構造を示せ。
再帰版