[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ShootOut] hash.scm
#!/usr/bin/env mzscheme -r
(define (sequence start stop)
(if (> start stop)
'()
(cons start (sequence (+ start 1) stop))))
(define (main)
(let* ([n (string->number (vector-ref argv 0))]
[hash (make-hash-table)]
[accum 0]
[seq (sequence 1 n)]
[revseq (reverse seq)]
[false (lambda () #f)])
(for-each (lambda (item)
(hash-table-put! hash (string->symbol (format "~x" item))
item))
seq)
(for-each (lambda (item)
(when (hash-table-get hash (string->symbol (format "~s"
item)) false)
(set! accum (+ accum 1))))
revseq)
(printf "~s" accum)))
(main)
Bryn Keller
Senior Software Engineer
Jenkon
brk@jenkon.com