Ячейка CONS - это запись с двумя полями.
Во многих реализациях Lisp есть специальные оптимизации для cons-ячеек. Типичным является то, что номера Fixnum хранятся непосредственно в полях - без указателей. Пока данные помещаются в память, они могут храниться напрямую. Это может быть, например, также в случае с символами. Можно также сохранить ячейку с двумя символами, чтобы символы были закодированы в полях.
С другими, более крупными данными есть указатели на эти данные, сохраненные в cons-ячейке.
Тогда также обратите внимание на разницу между:
(cons 1 2)
и
(list 1 2)
(cons 1 2)
создает одну ячейку минусов. (list 1 2)
создает две противоборствующие ячейки. Первая cons-ячейка содержит 1 и указатель на вторую. Вторая cons-ячейка содержит 2 и NIL (маркер конца списка).
Таким образом, в качестве оптимизации, часто в парах ключ / значение, используется только ячейка cons, а не список.
((age . 22) (name . "Barbara))
против
((age 22) (name "Barbara"))
Последний использует еще две минусы.