We’ve skipped over a fair number of functions that, while maybe not commonly used, are fairly simple in their use and descriptions. We’ll discuss pairlis a bit, simply because association lists are useful, but their manipulations aren’t always completely covered. You’ll recall I began this alphabetical series of Lisp features with acons, and now we’ll talk about pairlis.
With acons, the programmer can add a new key/value pair to an association list. The pairlis function extends this to a list of keys and a list of corresponding values.
In the acons example, I built up an association list as follows:
CL-USER> (let (alist) (setf alist (acons 1 "ONE" alist)) (setf alist (acons 2 "TWO" alist)) (setf alist (acons 3 "THREE" alist)) alist) ((3 . "THREE") (2 . "TWO") (1 . "ONE"))
Here’s how you can do this more simply with pairlis:
CL-USER> (let ((alist (pairlis '(1 2 3) '("ONE" "TWO" "THREE")))) alist) ((3 . "THREE") (2 . "TWO") (1 . "ONE"))
Remember this function when you want to build multiple association list entries in code.