17 lines
282 B
Scheme
17 lines
282 B
Scheme
(define (factorial n)
|
|
(if (zero? n)
|
|
1
|
|
(* n (factorial (- n 1)))))
|
|
|
|
|
|
;;; ANF
|
|
|
|
(define (factorial n)
|
|
(let ((r₁ (zero? n)))
|
|
(if r₁
|
|
1
|
|
(let ((r₂ (- n 1))
|
|
(r₃ (factorial r₂))
|
|
(r₄ (* n r₃)))
|
|
r₄))))
|