Previous: , Up: プロパティリスト   [Contents][Index]


5.9.2 プロパティリストと外部シンボル

以下の関数はプロパティリストを操作するために使用されます。これらの関数はすべて、デフォルトではプロパティ名の比較にeqを使用します。

Function: plist-get plist property &optional predicate

この関数はプロパティリストplistに保管された、プロパティpropertyの値をリターンする。比較はpredicate (デフォルトはeq)で行われる。この関数には不正な形式(malformed)のplist引数を指定できる。plistpropertyが見つからないと、この関数はnilをリターンする。たとえば、

(plist-get '(foo 4) 'foo)
     ⇒ 4
(plist-get '(foo 4 bad) 'foo)
     ⇒ 4
(plist-get '(foo 4 bad) 'bad)
     ⇒ nil
(plist-get '(foo 4 bad) 'bar)
     ⇒ nil
Function: plist-put plist property value &optional predicate

この関数はプロパティリストplistに、プロパティpropertyの値としてvalueを保管する。比較はpredicate (デフォルトはeq)で行われる。この関数はplistを破壊的に変更するかもしれず、元のリスト構造を変更せずに新しいリストを構築することもある。この関数は変更されたプロパティリストをリターンするので、plistを取得した場所に書き戻すことができる。たとえば、

(setq my-plist (list 'bar t 'foo 4))
     ⇒ (bar t foo 4)
(setq my-plist (plist-put my-plist 'foo 69))
     ⇒ (bar t foo 69)
(setq my-plist (plist-put my-plist 'quux '(a)))
     ⇒ (bar t foo 69 quux (a))
Function: lax-plist-get plist property

この廃れた関数はplist-getと同様だが、プロパティの比較にeqではなくequalを使用する。

Function: lax-plist-put plist property value

この廃れた関数はplist-putと同様だが、プロパティの比較にeqではなくequalを使用する。

Function: plist-member plist property &optional predicate

この関数は与えられたpropertyplistに含まれるなら非nilをリターンする。比較はpredicate (デフォルトはeq)で行われる。plist-getとは異なりこの関数は存在しないプロパティと、値がnilのプロパティを区別できる。実際にリターンされる値は、carpropertyで始まるplistの末尾部分である。