GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Plist-Access.html ・ emacs-doc.conao3.com

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

プロパティリストを操作するには、以下の関数が利用できます。いずれもデフォルトでは、eqを用いてプロパティ名を比較します。

関数: plist-get plist property &optional predicate

これは、プロパティリスト plist に格納されている property プロパティの値を返します。比較は predicate で行われ、デフォルトは eq です。不正な形式の plist 引数を受け付けます。plist 内に property が見つからない場合は、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
関数: 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))
関数: lax-plist-get plist property

この廃止された関数は、eqの代わりにequalを用いてプロパティを比較する点を除けば、plist-getと同様です。

関数: lax-plist-put plist property value

この廃止された関数は、eqの代わりにequalを用いてプロパティを比較する点を除けば、plist-putと同様です。

関数: plist-member plist property &optional predicate

plist に指定された property が含まれている場合、non-nil を返します。比較には predicate が使用され、デフォルトは eq です。plist-get とは異なり、これによりプロパティが欠落している場合と、値が nil である場合を区別できます。実際の値は、car が property である plist の末尾部分となります。