属性リストを使う - lisp-cookbook-ja/common-lisp GitHub Wiki
属性リストはキーと値が順番にならんだリストで、連想リストと同様にキーと値を手軽に扱う方法として使用されてきたようです。 plist(Property list)とも呼ばれます。
'(foo 1 bar 2 baz 3)
消費するコンスセルの数は連想リストと全く同じです。
plistを操作するための関数にはgetfが用意されています。
(let ((plist '(foo 1 bar 2 baz 3)))
(list (getf plist 'foo)
(getf plist 'bar)))
;=> (1 2)
(let ((plist (list 'foo 1 'bar 2 'baz 3)))
(setf (getf plist 'foo) 100
(getf plist 'bar) 200)
plist)
;=> (FOO 100 BAR 200 BAZ 3)
議論
属性リスト(Property list/plist)という名前に比べ交代リストというのは、それ程聞かないのですが、竹内先生の著作等から来ているのでしょうか。 検索エンジンから来る人は多分、属性リストで検索してくると思うので、属性リストの項目も同内容で作成してみてはどうでしょうか。 --g000001
ご指摘のとおりです。竹内先生の「はじめての人のためのLisp」を読んで交代リストと頭から信じ込んでいました。普段はplistと呼んでいたので深く意識しませんでしたがあらためて日本語で言うならば今だと属性リストが一般的ですね。--koga