(wat-aro)

生きてます

SICP 問題 3.09

階乗を計算する手続き(factorial 6)の環境構造を示す.

 

再帰

(define (factorial n)
(if (= n 1)
1
(* n (factorial (- n 1)))))

f:id:wat-aro:20151119211757j:plain

    反復

(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))))

f:id:wat-aro:20151119211800j:plain