プログラム中でハッシュを定義する - lisp-cookbook-ja/common-lisp GitHub Wiki
ハッシュ ライブラリ fare-utils alexandria arnesi
プログラム中でハッシュを定義する
以下のようにするとプログラム中でハッシュを定義することができます。 検索用のテスト関数も:testで指定することが可能です。(デフォルトでは、eql)
(let ((ht (make-hash-table :test #'equal)))
(setf (gethash "apple" ht) 150
(gethash "banana" ht) 300
(gethash "lemon" ht) 300))
見ての通りやや面倒なので、便利にするライブラリも様々提供されています。
;; alexandria
(alexandria:plist-hash-table '("apple" 150
"banana" 300
"lemon" 300)
:test #'equal)
;; fare-utils
(fare-utils:alist->hash-table '(("apple" 150)
("banana" 300)
("lemon" 300))
:test #'equal)
;; arnesi
(arnesi:build-hash-table (list :test #'equal)
'(("apple" 150)
("banana" 300)
("lemon" 300)))