; File: fact.scm ; Title: Factorial n! ; n! : N -> N with n! is 1 for n=0 ; and n * (n-1)! for n>0 ; TRY: try the biggest n for which you can compute n! ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Ex: (fact 6) -> 120 (define (fact n) ;recursiv (cond ((= n 0) 1) (#t (* n (fact (- n 1)))) )) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define (factt n) ;recursiv (letrec((factaux (lambda (n r) (cond ((= n 0) r) (#t (factaux (- n 1) (* r n))) )) )) (factaux n 1) )) ;;;;;;;;;;;;;;;;;;;;;;;Factorial with DOTIMES ;Ex: (fact 6) -> 120 (define fact1 (lambda (n) (let ((rez 1)) (do ((i 0 (+ i 1))) (( = i n) rez) (set! rez (* (+ i 1) rez)) ) )))