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-го аргумента>).
Домены(области определения) аргументов должны быть либо стандартными, либо объявленными в разделе описания доменов. Следует обращать внимание на то, что имя предиката в Турбо-Прологе должно быть идентификатором, т.е. оно должно состоять только из латинских букв, цифр и символа подчеркивания, причем имя предиката не может начинаться с цифры.
Пример: Предикат, описывающий отношение "мама"