; fact.scm (define (call n proc . args) (let loop ((i 0)) (when (< i n) (apply proc args) (loop (+ 1 i))))) (define (fac x) (if (= x 0) 1 (* x (fac (- x 1))))) (define n (string->number (car (reverse (argv))))) (time (call 10000000 (lambda () (fac n)))) (display "result:") (display (fac n)) (newline)