プロパティーリスト(略して plist )は、シンボルのプロパティーセルにストアされた pair になった要素のリストです。 (各) pair は、(通常はシンボルである)プロパ ティー名をプロパティーか値に対応付けます。プロパティーリストは(通常)、シンボル に関する情報を記録するのに用います。それらの情報には、その関数が定義されてある ファイル、 (言語を理解するシステムにおいて)そのシンボルの名前の属す文法クラ ス、といったものが含まれます。(もっと適切な例??)
association リスト(セクション 6.6 [Association Lists]、ページ 56) は、プロパ ティーリストと(非常に)良く似ています。しかし、各プロパティー名は 1度しか現われ ることができません。このため、 (association リストとは異なり) 要素の pair の現 われる順番は重要ではありません。
プロパティー名(もしくはキー)とプロパティー値はどんな Lisp オブジェクトであって もかまいません。プロパティー名は、eq を用いて比較されます。
Function: symbol-plist symbol
symbol のプロパティーリストを返します。プロパティーリストとは、その奇数番 目の要素がプロパティー名で、偶数番目の要素がプロパティーもしくは対応する値 であるリストのことです。この関数を、(プロパティーリストを変更する目的で)プ ロパティーリストに対するアクセスを得るのに用いてはいけません (setplist に 対する例を参照)。
Function: setplist symbol plist
この関数は、 symbol のプロパティーリストを plist に設定します。 (チェック は行ないませんが) plist は正しい形をした(訳注:well-formed) プロパティーリ ストでなくてはいけません。
(setplist 'foo '(a 1 b (2 3) c nil)) => ( a 1 b (2 3) c nil) (symbol-plist 'foo) => ( a 1 b (2 3) c nil)
Function: get symbol key
この関数は、 symbol のプロパティーリストから key (訳注:キーに対する値)を 得ます。 symbol がそのキーを持つ場合、対応する値を返します。そのキーを持た ない場合、nil を返します。 (このため) 対応する値が nil であることと、キー が存在していないこととを区別することはできません。 key は eq を用いてプロ パティー名と比較されるため、どんなオブジェクトでも用いることができます。
put に対する例を参照して下さい。
Function: put symbol key value
この関数は、 symbol のプロパティーリストのプロパティー名 key の下に、 (前 にあった値の代りに) value を置きます。
(ここでは Emacs 的な例が必要!! dml)
(put 'fly 'verb 'transitive) => 'transitive (put 'fly 'noun '(a nasty little bug)) => (a nasty little bug) (get 'fly 'verb) => transitive (symbol-plist 'fly) => (verb transitive noun (a nasty little bug))