Previous: Symbol Plists, Up: Property Lists


7.4.3 シンボルの外部の属性リスト

シンボル以外の場所に保存した属性リストの操作に便利な2つの関数があります。

— Function: plist-get plist property

これは、属性リストplistに保存されている属性propertyの値を返す。 たとえば、つぎのとおり。

          (plist-get '(foo 4) 'foo)
               ⇒ 4
— Function: plist-put plist property value

これは、属性リストplistに、 propertyの値としてvalueを格納する。 これはplistを破壊的に変更するか、あるいは、 古いものを変更せずに新たなリスト構造を構築する。 関数は変更した属性リストを返すので、 plistを保持していたところへ保存し直せる。 たとえば、つぎのとおり。

          (setq my-plist '(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))

つぎのようにして、plist-putを用いてputを定義できます。

     (defun put (symbol prop value)
       (setplist symbol
                 (plist-put (symbol-plist symbol) prop value)))