ikarus/benchmarks/r6rs-benchmarks/diviter.ss

32 lines
994 B
Scheme

;;; DIVITER -- Benchmark which divides by 2 using lists of n ()'s.
(library (r6rs-benchmarks diviter)
(export main)
(import (r6rs) (r6rs-benchmarks))
(define (create-n n)
(do ((n n (- n 1))
(a '() (cons '() a)))
((= n 0) a)))
(define *ll* (create-n 200))
(define (iterative-div2 l)
(do ((l l (cddr l))
(a '() (cons (car l) a)))
((null? l) a)))
(define (main . args)
(run-benchmark
"diviter"
diviter-iters
(lambda (result)
(equal? result
'(() () () () () () () () () () () () () () () () () () () ()
() () () () () () () () () () () () () () () () () () () ()
() () () () () () () () () () () () () () () () () () () ()
() () () () () () () () () () () () () () () () () () () ()
() () () () () () () () () () () () () () () () () () () ())))
(lambda (l) (lambda () (iterative-div2 l)))
*ll*)))