26 lines
779 B
Scheme
26 lines
779 B
Scheme
(module hash2 mzscheme
|
|
(define (main argv)
|
|
(let* ([n (string->number (vector-ref argv 0))]
|
|
[hash1 (make-hash-table 'equal)]
|
|
[hash2 (make-hash-table 'equal)]
|
|
[zero (lambda () 0)])
|
|
(let loop ([i 0])
|
|
(unless (= i 10000)
|
|
(hash-table-put! hash1 (string-append "foo_" (number->string i)) i)
|
|
(loop (add1 i))))
|
|
(let loop ([i 0])
|
|
(unless (= i n)
|
|
(hash-table-for-each hash1 (lambda (key value)
|
|
(hash-table-put!
|
|
hash2
|
|
key
|
|
(+ (hash-table-get hash2 key zero) value))))
|
|
(loop (add1 i))))
|
|
(printf "~s ~s ~s ~s~n"
|
|
(hash-table-get hash1 "foo_1")
|
|
(hash-table-get hash1 "foo_9999")
|
|
(hash-table-get hash2 "foo_1")
|
|
(hash-table-get hash2 "foo_9999"))))
|
|
|
|
(main (current-command-line-arguments)))
|