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