logo
TurboProlog / Документация / TOM_1

Подробнее о декларациях и правилах

В Турбо Прологе есть несколько встроенных стандартных доменов, ос-

новные из которых показаны в Таблице 4.1. Использовать эти стандартные

домены вы можете при декларации типов аргументов предикатов. Т.к. стан-

дартные домены уже известны Турбо Прологу, - их описание в секции domains

не требуется.

Таблица 4.1 Основные стандартные домены

-----------------------------------------------------------------

Домен Описание

-----------------------------------------------------------------

char Символ, заключенный между двумя одиночными кавычками

(например: 'a').

integer Целое число от -32,768 до 32,767.

real Числа с необязательным знаком (+ или -), за которым

следует несколько цифр DDDDDDD, затем - необязательная

десятичная точка(.) и еще цифры DDDDDDD, за которыми -

необязательная экспоненциальная часть (e(+ или -)DDD):

<+|-> DDDDD <.> DDDDDDD <e<+|->DDD>

Примеры действительных (real) чисел:

42705 9999 86.72

9111.929437 521e238 79.83e+21

здесь 79.83e+21 означает 79.83*10^21 (аналогично

Фортрану, Бейсику и Паскалю).

Допустимый диапазон действительных чисел: от 1*10^-307

до 1*10^308 (от 1e-3 до 1e+3). При необходимости, целые

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

string Строка - любая последовательность символов, записанных

между парой символов удвоенных кавычек. Например: "книга

Марка".

Строки, которые вы пишете в программе, могут достигать

длины в 255 символов, в то время как строки, которые

система Турбо Пролога считывает из файла или строит

внутри себя, - могут достигать 64 К.

symbol Для идентификаторов (symbol) допускается два формата:

1. Последовательность букв, цифр и символов

подчеркивания, причем первый символ должен быть строчной

буквой;

2. Последовательность символов, заключенных в двойные

кавычки (это делается для случаев, когда идентификаторы

включают пробелы или не начинаются со строчной буквы).

Примеры идентификаторов.

telephone_number "railway ticket" "Dorid Inc"

Идентификаторы и строки взаимозаменяемы в вашей

программе, однако Турбо Пролог хранит их раздельно.

Идентификаторы хранятся в таблице поиска, а для

представления ваших объектов используются лишь их

адреса, а не сами идентификаторы. Это означает, что

сопоставление идентификаторов выполняется очень быстро,

а в случае, если они встречаются в программе несколько

раз, то и хранение их выполняется очень компактно.

Строки же не хранятся в поисковой таблице, и при

необходимости сопоставления Турбо Пролог проверяет их

символ за символом. Вы сами должны определять какой

домен лучше использовать в каждой конкретной программе.

-----------------------------------------------------------------

Турбо Пролог распознает несколько других стандартных доменов, однако

их мы объясним в других главах, после того как вы хорошо усвоите основ-

ные. Стандартные домены баз данных объясняются в главах 9 и 15, а другие

- в справочном руководстве.

В следующей таблице мы приводим несколько примеров простых объектов,

принадлежащих к основным стандартным доменам.

Таблица 4.2 Простые объекты.

-----------------------------------------------------------------

abc, caitlin, "animal lover", b_t_r_m (symbol)

-1, 3, 5, 0 (integer)

3.45, 0.01, -30.5, 123.4e+5 (real)

'a', 'b', 'c', '/', '&' (char)

"One two", "number 5", "&&", abc, turbo (string)

-----------------------------------------------------------------