Syntax:
rassoc item alist &key key test test-not => entry
rassoc-if predicate alist &key key => entry
rassoc-if-not predicate alist &key key => entry
Arguments and Values:
item---an object.
alist---an association list.
predicate---a designator for a function of one argument that returns a generalized boolean.
test---a designator for a function of two arguments that returns a generalized boolean.
test-not---a designator for a function of two arguments that returns a generalized boolean.
key---a designator for a function of one argument, or nil.
entry---a cons that is an element of the alist, or nil.
Description:
rassoc, rassoc-if, and rassoc-if-not return the first cons whose cdr satisfies the test. If no such cons is found, nil s returned.
If nil appears in alist in place of a pair, it is ignored.
Examples:
(setq alist '((1 . "one") (2 . "two") (3 . 3))) => ((1 . "one") (2 . "two") (3 . 3)) (rassoc 3 alist) => (3 . 3) (rassoc "two" alist) => NIL (rassoc "two" alist :test 'equal) => (2 . "two") (rassoc 1 alist :key #'(lambda (x) (if (numberp x) (/ x 3)))) => (3 . 3) (rassoc 'a '((a . b) (b . c) (c . a) (z . a))) => (C . A) (rassoc-if #'stringp alist) => (1 . "one") (rassoc-if-not #'vectorp alist) => (3 . 3)
Side Effects: None.
Affected By: None.
Exceptional Situations: None.
See Also:
assoc, Section 3.6 (Traversal Rules and Side Effects)
Notes:
The :test-not parameter is deprecated.
The function rassoc-if-not is deprecated.
It is possible to rplaca the result of rassoc, provided that it is not nil, in order to ``update'' alist.
The expressions
(rassoc item list :test fn)and
(find item list :test fn :key #'cdr)are equivalent in meaning, except when the item is nil nd nil appears in place of a pair in the alist. See the function assoc.