TURBO PROLOG. Терёхин В.В. - 57 стр.

UptoLike

Составители: 

57
Терм fruits в этом утверждении называется функтором. Функтор яв-
ляется первым термом составного объекта. Функтор составного объекта есть
на самом деле предикат, хотя он и вставлен внутрь другого предиката.
Главным функтором здесь является предикат likes.
Для облегчения написания утверждений и предикатов в данной фор-
ме Турбо-Пролог позволяет объявлять составные
объекты в разделе domains.
Для настоящего примера описаниями будут служить
domains
personal_liking = fruits(type1,type2,type3)
type1,type2,type3 = symbol
Имя домена personal_liking является именем составного объекта, об-
разованного при помощи функтора fruits. Имя fruits представляет одно-
временно составной объект и функтор. Если объекты структуры принадлежат
к одному и тому же типу доменов, то этот объект называется однодомен
-
ной структурой. Структура с объектами apples, peaches и oranges (все
типа symbol), является однодоменной структурой. Если структура содержит
объекты разных типов, она называется многодоменной структурой. Приме-
ром тому совокупность объектов apples, r и 16. Здесь apples имеет тип
symbol, r - тип char, 16 - тип integer. Таким образом составной объект яв-
ляется определенной структурой доменов. Каждая структура
предполагает
особое представление фактов в базе данных. Структура обеспечивает средст-
во сортировки объектов по категориям. Ссылки на доменную структуру осу-
ществляются по имени функтора.
* Функторы и доменные структуры
Программа "Библиотека" (листинг 3.7) демонстрирует использование
доменной структуры с именем personal_library. Эта структура содержит
сведения о книгах из личных собраний.
____________________________________________________________
Листинг
3.7
/* Программа: Библиотека */
/* Назначение: Демонстрация одноуровневого составного */
/* объекта. */
domains
personal_library = book (title, author, publisher, year) /* персональная
библиотека = книга(название,автор,
издательство,год издания) */
collector, title, author, publisher = symbol
year = integer
predicates
collection(collector, personal_library)
/* коллекция (имя коллекционера, библиотека) */
clauses
      Терм fruits в этом утверждении называется функтором. Функтор яв-
ляется первым термом составного объекта. Функтор составного объекта есть
на самом деле предикат, хотя он и вставлен внутрь другого предиката.
Главным функтором здесь является предикат likes.
      Для облегчения написания утверждений и предикатов в данной фор-
ме Турбо-Пролог позволяет объявлять составные объекты в разделе domains.
Для настоящего примера описаниями будут служить
            domains
      personal_liking = fruits(type1,type2,type3)
      type1,type2,type3 = symbol
      Имя домена personal_liking является именем составного объекта, об-
разованного при помощи функтора fruits. Имя fruits представляет одно-
временно составной объект и функтор. Если объекты структуры принадлежат
к одному и тому же типу доменов, то этот объект называется однодомен-
ной структурой. Структура с объектами apples, peaches и oranges (все
типа symbol), является однодоменной структурой. Если структура содержит
объекты разных типов, она называется многодоменной структурой. Приме-
ром тому совокупность объектов apples, r и 16. Здесь apples имеет тип
symbol, r - тип char, 16 - тип integer. Таким образом составной объект яв-
ляется определенной структурой доменов. Каждая структура предполагает
особое представление фактов в базе данных. Структура обеспечивает средст-
во сортировки объектов по категориям. Ссылки на доменную структуру осу-
ществляются по имени функтора.

*     Функторы и доменные структуры
      Программа "Библиотека" (листинг 3.7) демонстрирует использование
доменной структуры с именем personal_library. Эта структура содержит
сведения о книгах из личных собраний.
____________________________________________________________
                    Листинг 3.7
/* Программа: Библиотека                */
/* Назначение: Демонстрация одноуровневого составного */
/*              объекта.                       */
domains
    personal_library = book (title, author, publisher, year) /* персональная
                                       библиотека = книга(название,автор,
                                                  издательство,год издания) */
      collector, title, author, publisher = symbol
      year = integer

predicates
      collection(collector, personal_library)
/* коллекция (имя коллекционера, библиотека) */

clauses


                                                                            57