An association list is a list representing a mapping from one set of values to another; any list whose elements are cons cells is an association list.
&key :test :test-not :key
car
matches (in the sense of :test
,
:test-not
, and :key
, or by comparison with eql
)
a given item. It returns the matching element, if any,
otherwise nil
. It ignores elements of a-list which
are not cons cells. (This corresponds to the behavior of
assq
and assoc
in Emacs Lisp; Common Lisp's
assoc
ignores nil
s but considers any other non-cons
elements of a-list to be an error.)
&key :test :test-not :key
cdr
matches
item. If a-list represents a mapping, this applies
the inverse of the mapping to item.
rassoc*
with a :test
argument of equal
. It is analogous to Emacs Lisp's
standard assoc
function, which derives from the MacLisp
rather than the Common Lisp tradition.
The assoc-if
, assoc-if-not
, rassoc-if
,
and rassoc-if-not
functions are defined similarly.
Two simple functions for constructing association lists are:
(cons (cons key value) alist)
.
(nconc (mapcar* 'cons keys values) alist)
.