Первый объект smith имеет простую структуру: он представляет сам себя. То же можно сказать и про остальные объекты.
Любой объект, представляющий сам себя, называется простым объектом.
Аналогично, СТРУКТУРА, СОСТОЯЩАЯ ИЗ ПРОСТЫХ ОБЪЕКТОВ, НАЗЫВАЕТСЯ ПРОСТОЙ СТРУКТУРОЙ.
Можно было бы не пользоваться в описании предиката collection базисными типами, а описать свои:
domains
name,title,author,publisher = symbol
year = integer
predicates
collection(name,title,author,publisher,year)
В этом описании 4 последних объекта обозначают атрибуты книги. Правило, которое оперирует с персональными библиотеками, рассматривает эти 4 последних объекта как независимые сущности. Чтобы сделать код программы более простым, а запись предиката collection более компактной, соберем эти объекты в структуру с названием book:
collection(smith, book("Alice in Wonderland", "Lewis Carroll", "The New American library", 1960)).
В данном примере book является составным объектом. Терм book в этом утверждении называется функтором. Функтор составного объекта есть на самом деле предикат, хотя он и вставлен внутрь другого предиката. главным функтором здесь является предикат collection.
Объект, представляющий другой объект или совокупность объектов, называется составным объектом.
Записанные же таким образом предикаты collection называются составными структурами, поскольку они скомпонованы из составных объектов.
Турбо-Пролог позволяет объявлять составные объекты (доменные структуры) в разделе domains. Функтор структуры personal_library имеет имя book. Описание таково:
domains
personal_library = book(title, author,
publisher, year)
name,title,author,publisher = symbol
year = integer
Предикат, использующий эту структуру, определяется так:
predicates
collection(name, personal_library)
Описание содержит два имени объектов. Первое имя относится к обычному объекту, второе — к структуре из нескольких объектов.
Структура обеспечивает средство сортировки объектов по категориям. ССЫЛКИ НА ДОМЕННУЮ СТРУКТУРУ ОСУЩЕСТВЛЯЮТСЯ ПО ИМЕНИ ФУНКТОРА (в нашем примере — по имени book).