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

Глобальные предикаты.

Объявления глобальных предикатов отличаются от объявлений обычных

(локальных) предикатов, поскольку они должны содержать описание шаблона

(-ов), при помощи которых данный предикат может быть вызван. Каждое объ-

явление в global predicates должно следовать схеме:

mypred(d1, d2, ..., dn) - (f, f, ..., f) (f, f, ..., f)...

где d1, d2, ..., dn - глобальные домены, а каждая группа (f, f, ..., f)

обозначает шаблон, в котором каждое f - это либо i (ввод), либо o (вы-

вод).

Например, в следующем объявлении глобального предиката name и home

принадлежат домену типа string, а age имеет тип integer, аргументы

first_pred могут быть либо все связанные, либо все свободные:

first_pred(name, home, age) - (i, i, i) (o, o, o)

Замечание: Если какое-то определение глобального предиката

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

ссылаются на этот предикат.

Не играет роли, в каком модуле появляются предложения для глобальных

предикатов, но - как и в случае локальных предикатов - все предложения

должны появляться вместе.