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

Автоматическое преобразование типов

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

переменных, они принадлежали одному и тому же домену. Иногда переменные

могут быть связаны с константами из разных доменов. Это (избирательное)

смешение допускается, т.к. Турбо Пролог автоматически выполняет преобра-

зование типов (из одного домена в другой), но только в следующих случаях:

# Между строками и идентификаторами (string и symbol).

# Между целыми, действительными и символами (integer, real, char).

(При преобразовании символа в числовое значение этим значением явля-

ется величина символа в коде ASCII.)

Аргумент из домена my_dom, который объявлен следующим образом:

domains

my_dom = <основной домен> /*<основной домен> - это

стандартный домен*/

может свободно смешиваться с аргументами из этого основного домена и всех

совместимых с ним стандартных доменов. (Если основной домен - string, то

с ним совместимы аргументы из домена symbol; если же основной домен

integer, то с ним совместимы домены real и char.)

Такое преобразование типов означает, например, что вы можете:

# вызвать предикат с аргументами типа string, задавая ему аргументы

типа symbol. И наоборот.

# Передавать предикату с аргументами типа real параметры типа

integer.

# Использовать в выражениях и сравнениях символы без необходимости

получения их кодов в ASCII.