racket/collects/tests/mzscheme/benchmarks/shootout/hash.ss
2008-02-24 21:27:36 +00:00

19 lines
511 B
Scheme

(module hash mzscheme
(define (main argv)
(let* ([n (string->number (vector-ref argv 0))]
[hash (make-hash-table 'equal)]
[accum 0]
[false (lambda () #f)])
(let loop ([i 1])
(unless (> i n)
(hash-table-put! hash (number->string i 16) i)
(loop (add1 i))))
(let loop ([i n])
(unless (zero? i)
(when (hash-table-get hash (number->string i) false)
(set! accum (+ accum 1)))
(loop (sub1 i))))
(printf "~s~n" accum)))
(main (current-command-line-arguments)))