Une spécificité importante de Common Lisp est l'existence d'une représentation externe des listes. Ceci implique que read doit être capable de traduire cette représentation en liste et que print doit être capable de l'afficher à partir d'une liste.
Dans cette représentation, les éléments de la liste sont entourés de parenthèses. Exemples :
* (cons 3 nil)
(3)
* (cons 2 (cons 3 nil))
(2 3)
* (cons 1 (cons 2 (cons 3 nil)))
(1 2 3)
* (cons "bonjour" (cons (cons 2 (cons 3 nil)) (cons 1.234 nil)))
("bonjour" (2 3) 1.234)
* (list "phylloxera" 1789 0.707107)
("phylloxera" 1789 0.707107)
* (list "qwerty" (list "us" "uk") "azerty" (list "fr" "be"))
("qwerty" ("us" "uk") "azerty" ("fr" "be"))
*
Ce n'est pas par hasard que la représentation externe des listes ressemble à celle des expressions. En fait, une expression composée (voir section 4.3) n'est qu'une liste dont les éléments sont soumis à certaines restrictions. Il est donc naturel d'étendre l'opérateur spécial quote (voir section 4.5) aux listes :
* (cons 234 '(a 333 c))
(234 A 333 C)
*