2.12 Структуры

Структуры являются экземплярами определённых пользователем типов данных, которые имеют ограниченное количество именованных полей (свойств). Они являются аналогами записей в Pascal’е. Структуры декларируются с помощью конструкции defstruct. defstruct автоматически определяет конструктор и функции доступа к полям для нового типа данных.

Различные структуры могут выводится на печать различными способами. Определение типа структуры может содержать процедуру вывода на печать для объектов данного типа (смотрите опцию :print-function для defstruct). Записью по-умолчанию для структур является:

#S(имя-структуры
        имя-слота-1 значение-слота-1
        имя-слота-2 значение-слота-2
                      ...)

где #S указывает на синтаксис структуры, имя-структуры является именем (символом) типа данной структуры, каждый имя-слота является именем слота (также символ), и каждое соответствующее значение-слота — отображением Lisp объекта в данном слоте.