ハッシュをシーケンス(alist、plist、その他)に変換する - lisp-cookbook-ja/common-lisp GitHub Wiki
ハッシュをシーケンス(alist、plist、その他)に変換する
自作するか、ライブラリを利用します。
(let ((ht (make-hash-table :test #'equal)))
(setf (gethash "apple" ht) 150
(gethash "banana" ht) 300
(gethash "lemon" ht) 300)
(let ((alist () ))
(maphash (lambda (key val)
(push (cons key val) alist))
ht)
alist))
ライブラリ:Alexandriaを利用し、ハッシュテーブルからplistへ変換
(let ((ht (make-hash-table :test #'equal)))
(setf (gethash "apple" ht) 150
(gethash "banana" ht) 300
(gethash "lemon" ht) 300)
(alexandria:hash-table-plist ht))
;=> ("lemon" 300 "banana" 300 "apple" 150)