(assoc <obj> <alist>) is defined as follows:

<alist> (for “association list”) must be a list of pairs. This procedure finds the first pair in <alist> whose car field is <obj> and returns that pair. If no pair in <alist> has <obj> as its car then #f (not the empty list) is returned.

This procedure uses equal? to compare <obj> with the car fields of the pairs in <alist> (in contrast to assq, which uses eq?).


[1] (assoc 3 (list (list 1 2) (list 3 4) (list 5 6)))
(3 4)
[2] (pp assoc)
(lambda (obj alist)
  (internal-assoc equal? obj alist))