bench.scm 617 B

123456789101112131415161718192021222324
  1. ; Copyright (c) 1993-2008 by Richard Kelsey and Jonathan Rees. See file COPYING.
  2. ; Tiny benchmarking image.
  3. ; This returns the result of calling recursive FIB on its first argument.
  4. (define (start arg in in-encoding out out-encoding error error-encoding)
  5. (fib (string->integer (vector-ref arg 0))))
  6. (define (string->integer s)
  7. (letrec ((loop (lambda (i r)
  8. (if (= i (string-length s))
  9. r
  10. (loop (+ i 1)
  11. (+ (- (char->ascii (string-ref s i))
  12. (char->ascii #\0))
  13. (* 10 r)))))))
  14. (loop 0 0)))
  15. (define (fib n)
  16. (if (< n 2)
  17. 1
  18. (+ (fib (- n 1)) (fib (- n 2)))))