32 lines
994 B
Scheme
32 lines
994 B
Scheme
;;; DIVITER -- Benchmark which divides by 2 using lists of n ()'s.
|
|
|
|
(library (rnrs-benchmarks diviter)
|
|
(export main)
|
|
(import (rnrs) (rnrs-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*)))
|