To display an associative list using symbols as keys a new function is required, because `ldisp!' can handle only Church Numerals. We call this new function `aldisp!'.

To search for keys in the list we need another lambda abstraction, which we call `assoc'.

(define map2 (lambda(proc l1 l2) (if (lor (nullp l1) (nullp l2)) nil (cons (proc (car l1) (car l2)) (map2 proc (cdr l1) (cdr l2)))))) |

(define aldisp! (lambda (l) (if (nullp l) nil ((lambda() (print (car (car l))) (print (cdr (car l))) (aldisp! (cdr l))))))) ; (define assoc (lambda(key alist) (if (nullp alist) false (if (equal key (car(car alist))) (car alist) (assoc key (cdr alist)))))) |

This example uses the following extensions of A++ in its original version:

- defnition of symbols using the
**`single-quote'**-character, - use of the primitive function
**`equalx'**for comparing general objects. - use of the primitive function
**`print'**to display the results.

Georg P. Loczewski 2004-03-05