Go to the first, previous, next, last section, table of contents.

プロパティーリスト

プロパティーリスト(略して 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))


Go to the first, previous, next, last section, table of contents.