CLでSRFI-90 — #:g1

Posted 2012-01-27 21:47:00 GMT

CLでSRFI、今回は、SRFI-90の「Extensible hash table constructor」です。
SRFI-89で定義したキーワード引数の扱いの仕組みを応用してみた例という感じもするSRFIで、色々なオプションな付きそうな、make-hash-tableをmake-table+キーワード引数で書けるようにした、というもののようです。

動作

(let ((tab (srfi-69:make-hash-table (lambda (x y)
                                      (string-equal (string x)
                                                    (string y))))))
  (srfi-69:hash-table-set! tab :a 10)
  (srfi-69:hash-table-ref tab "A"))
;=>  10
と書くところを、キーワード引数を使って、
(let ((tab (make-table :test (lambda (x y)
                               (string-equal (string x)
                                             (string y))))))
  (srfi-69:hash-table-set! tab "A" 10)
  (srfi-69:hash-table-ref tab :a))
;=>  10
と書けます。

移植について

ざっくりとした取り決めという感じなので、適当に移植しました。

comments powered by Disqus