Следующие функции могут использоваться для манипулирования списками свойств.
По умолчанию они сравнивают имена свойств с использованием eq.
Эта функция возвращает значение свойства property, хранящееся в
списке свойств plist. Сравнения выполняются с помощью predicate,
по умолчанию это eq. Она принимает некорректный аргумент plist.
Если property не найдено в plist, она возвращает 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
Эта функция сохраняет value как значение свойства property
в списке свойств plist. Сравнения выполняются с помощью 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))
Эта устаревшая функция похожа на plist-get, за исключением того, что она
сравнивает свойства с помощью equal вместо eq.
Эта устаревшая функция похожа на plist-put, за исключением того, что она
сравнивает свойства с помощью equal вместо eq.
Эта функция возвращает не-nil, если plist содержит заданное
property. Сравнения выполняются с помощью predicate,
по умолчанию это eq. В отличие от plist-get, эта функция
позволяет отличить отсутствующее свойство от свойства со значением nil.
Фактически возвращается хвост plist, чей car равен property.