交代リストを使う - 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