;;; ACK -- One of the Kernighan and Van Wyk benchmarks. (library (rnrs-benchmarks ack) (export main) (import (rnrs) (rnrs-benchmarks)) (define (ack m n) (cond ((= m 0) (+ n 1)) ((= n 0) (ack (- m 1) 1)) (else (ack (- m 1) (ack m (- n 1)))))) (define (main . args) (run-benchmark "ack" ack-iters (lambda (result) (equal? result 4093)) (lambda (m n) (lambda () (ack m n))) 3 9)))