Each symbol has a property list (or plist), this is a structure which associates an arbitrary Lisp object with a key (usually a symbol). The keys in a plist may not have any duplications (so that each property is only defined once).
The concept of a property list is very similar to an association list (see section Association Lists) but there are two main differences:
((one . 1) (two . 2) (three . 3))a property list would be,
(one 1 two 2 three 3)
eq to property. If such a property is found it
is returned, else the value nil is returned.
(get 'if 'lisp-indent)
=> 2
(get 'set 'lisp-indent)
=> nil
put sets the value of the property property to new-value
in the property list of the symbol symbol. If there is an
existing value for this property it is overwritten. The value returned
is new-value.
(put 'foo 'prop 200)
=> 200
(symbol-plist 'if)
=> (lisp-indent 2)
(setplist 'foo '(zombie yes))
=> (zombie yes)
Go to the first, previous, next, last section, table of contents.