Domains. Из доменов можно конструировать составные или структурные домены (структуры)

i=integer

Из доменов можно конструировать составные или структурные домены (структуры). Структура описывается следующим образом:

<имя структуры> = <имя функтора>(<имя домена первой компоненты>,..., <имя домена последней компоненты>) [;<имя функтора>(...)]*

Каждая компонента структуры в свою очередь может быть структурой.

Пример: Предложить структуру, описывающую треугольник, содержащую в качестве компоненты структуру, описывающую точку на плоскости, имеющую две компоненты (координаты точки).

point = p(integer , integer)

triangle = tr(point , point , point)

В описание структуры могут входить альтернативы, разделенные символом ";" или ключевым словом "or".

Так, структуру, описывающую точку и на плоскости, и в пространстве, можно задать следующим образом:

point = p(integer , integer); p(integer , integer , integer).

Описание файлового домена имеет вид:

file = <символическое имя файла 1>;...;<символическое имя файла N>

Для представления данных в Турбо-Прологе, в отличие от стандартных алгоритмических языков программирования, используются не массивы, а списки. Списковый домен задается следующим образом:

<имя спискового домена> = <имя домена элементов списка>*

Пример: Список целых чисел

list_of_integer = integer*

Раздел описания предикатов внутренней базы данных

Раздел описания предикатов внутренней базы данных начинается с зарезервированного слова database и в нем описываются те предикаты, которые можно в процессе выполнения программы добавлять во внутреннюю базу данных или удалять оттуда. Описываются предикаты базы данных аналогично предикатам в разделе predicates.

Раздел описания предикатов

В разделе, озаглавленном зарезервированным словом predicates, содержатся описания определяемых пользователем предикатов. В традиционных языках программирования подобными разделами являются разделы описания заголовков процедур и функций. Описание n-местного предиката имеет следующий вид:

<имя предиката>(<имя домена первого аргумента>,...,

<имя домена n-го аргумента>).

Домены(области определения) аргументов должны быть либо стандартными, либо объявленными в разделе описания доменов. Следует обращать внимание на то, что имя предиката в Турбо-Прологе должно быть идентификатором, т.е. оно должно состоять только из латинских букв, цифр и символа подчеркивания, причем имя предиката не может начинаться с цифры.

Пример: Предикат, описывающий отношение "мама"

Наши рекомендации