Список может быть проиллюстрирован диаграммой, в которой ячейки cons показаны в виде пар ящиков, похожих на домино. (Читатель Lisp не может прочитать такую иллюстрацию; в отличие от текстовой нотации, которую могут понять как люди, так и компьютеры, иллюстрации в виде ящиков могут быть поняты только людьми.) Эта картинка представляет трехэлементный список (rose violet buttercup):
--- --- --- --- --- ---
| | |--> | | |--> | | |--> nil
--- --- --- --- --- ---
| | |
| | |
--> rose --> violet --> buttercup
На этой диаграмме каждый ящик представляет собой слот, который может содержать или ссылаться на любой объект Lisp. Каждая пара ящиков представляет собой ячейку cons. Каждая стрелка представляет ссылку на объект Lisp, либо атом, либо другую ячейку cons.
В этом примере первый ящик, содержащий CAR первой ячейки cons, ссылается на rose (символ). Второй ящик, содержащий CDR первой ячейки cons, ссылается на следующую пару ящиков, вторую ячейку cons. CAR второй ячейки cons — это violet, а ее CDR — это третья ячейка cons. CDR третьей (и последней) ячейки cons — это nil.
Вот еще одна диаграмма того же списка, (rose violet buttercup), нарисованная по-другому:
--------------- ---------------- ------------------- | car | cdr | | car | cdr | | car | cdr | | rose | o-------->| violet | o-------->| buttercup | nil | | | | | | | | | | --------------- ---------------- -------------------
Список без элементов — это пустой список; он идентичен символу nil. Другими словами, nil является одновременно и символом, и списком.
Вот список (A ()), или эквивалентно (A nil), изображенный с помощью ящиков и стрелок:
--- --- --- ---
| | |--> | | |--> nil
--- --- --- ---
| |
| |
--> A --> nil
Вот более сложная иллюстрация, показывающая трехэлементный список ((pine needles) oak maple), первый элемент которого — двухэлементный список:
--- --- --- --- --- ---
| | |--> | | |--> | | |--> nil
--- --- --- --- --- ---
| | |
| | |
| --> oak --> maple
|
| --- --- --- ---
--> | | |--> | | |--> nil
--- --- --- ---
| |
| |
--> pine --> needles
Тот же список, представленный во второй нотации ящиков, выглядит так:
-------------- -------------- --------------
| car | cdr | | car | cdr | | car | cdr |
| o | o------->| oak | o------->| maple | nil |
| | | | | | | | | |
-- | --------- -------------- --------------
|
|
| -------------- ----------------
| | car | cdr | | car | cdr |
------>| pine | o------->| needles | nil |
| | | | | |
-------------- ----------------