CLでSRFI-69 — #:g1

Posted 2012-01-26 15:45:00 GMT

CLでSRFI、今回は、SRFI-69の「Basic hash tables」です。 今回も身近で良く使うハッシュ関係のライブラリです。

動作

(defvar *test-alist*
  (do* ((*gensym-counter* 0)
        (ans (list nil))
        (tem ans
             (cdr (rplacd tem (list (cons (gensym) i)))))
        (i 0 (1+ i)))
       ((= 200 i) (cdr ans)) ))

(defvar *table* (alist->hash-table *test-alist*))

(srfi-1:take *test-alist* 5) ;=> ((#:G0 . 0) (#:G1 . 1) (#:G2 . 2) (#:G3 . 3) (#:G4 . 4)) (srfi-1:take (hash-table-keys *table*) 5) ;=> (#:G0 #:G1 #:G2 #:G3 #:G4) (srfi-1:take (hash-table-fold *table* #'acons '()) 5) ;=> ((#:G0 . 0) (#:G1 . 1) (#:G2 . 2) (#:G3 . 3) (#:G4 . 4))

移植について

CLには備え付けでハッシュがあるので、これを元にしようかなとも思いましたが、結局そのまま移植しました。

comments powered by Disqus