[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ShootOut] Hash2.scm
#!/usr/bin/env mzscheme -r
(require (lib "etc.ss"))
(define (main)
(let* ([n (string->number (vector-ref argv 0))]
[hash1 (make-hash-table)]
[hash2 (make-hash-table)]
[seq (build-list 10000 (lambda (x) x))]
[nseq (build-list n (lambda (x) x))]
[zero (lambda () 0)])
(for-each (lambda (item)
(hash-table-put! hash1 (string->symbol (string-append "foo_"
(number->string item))) item))
seq)
(for-each (lambda (item)
(hash-table-for-each hash1 (lambda (key value)
(hash-table-put! hash2 key (+
(hash-table-get hash2 key zero)
value)))))
nseq)
(printf "~s ~s ~s ~s"
(hash-table-get hash1 (string->symbol "foo_1"))
(hash-table-get hash1 (string->symbol "foo_9999"))
(hash-table-get hash2 (string->symbol "foo_1"))
(hash-table-get hash2 (string->symbol "foo_9999")))))
(main)
Bryn Keller
Senior Software Engineer
Jenkon
brk@jenkon.com