Elisp: Symbol Property List

By Xah Lee. Date: . Last updated: .

What is Symbol Property List

Each lisp Symbol is associated with a Property List .

This property list is stored in the symbol's property list cell.

Symbol Property List is used extensively in emacs. It is also very useful if you want to write a function with state. You can store the state info with the symbol itself, instead of using a global variable.

Get Whole Plist

symbol-plist

(symbol-plist SYMBOL)

Return SYMBOL's property list.

Set Whole Plist

setplist

(setplist SYMBOL NEWPLIST)

Set SYMBOL's property list to NEWPLIST, and return NEWPLIST.

(setplist 'ff '(a 1 b 2))

Get a Key's Value

get

(get SYMBOL PROPNAME)

Return the value of SYMBOL's PROPNAME property.

;; get the value of key xx, of symbol ff's property list
(get 'ff 'xx)

Add or Set a Key

put

(put SYMBOL PROPNAME VALUE)

Store SYMBOL's PROPNAME property with value VALUE.

;; set the value of key xx, of symbol ff's property list
(put 'ff 'xx 5)

Example of Using Symbol Properties

Reference

Elisp, list

Special Lists

List Structure

Elisp, key-and-value collection