Книга: ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОЛОГ

Дополнительные встроенные предикаты

Дополнительные встроенные предикаты

Помимо встроенных предикатов, описанных нами, в Прологе-10 предусмотрено много других возможностей.

«Условная» форма задания целей, которая позволяет задавать цели в следующем виде:

…, (likes(john,X) --› wooden(X); plastic(X)),…

Идея такой составной цели состоит в следующем. Если цель - «условие», которая задается перед стрелкой --›, согласуется с базой данных, то осуществляется вызов второй цели, заданной непосредственно после --›, иначе осуществляется вызов третьей цели. Любая из этих целей может представлять собой последовательность целей Пролога. Указанные условные цели действуют точно так же, как если бы они были определены в Прологе-10 следующим образом:

?- op(1050,xfy,-›).

?- op(1100,xfy,';').

(X -› Y; Z):- call(X),!, call(Y).

(X -› Y; Z):- call(Z).

Индексированная база данных. Это средство позволяет сопоставлять элементы информации в базе данных с конкретными значениями и обходить стандартный механизм доступа к базе данных, имеющийся в Прологе. Например, если бы вы захотели хранить информацию о возрастах сотен людей, то стандартный подход потребовал бы завести сотни утверждений для некоторого предиката age (возраст). И когда затем вы бы пожелали выяснить возраст конкретного человека, Пролог должен был бы осуществить просмотр всех утверждений, пока не нашел бы нужный. Беда в том, что при обычном подходе информация сопоставляется с предикатом и, когда предикат содержит много утверждений, объем поиска может быть большим. Индексированная база данных позволяет сопоставлять информацию с конкретным именем более прямым способом.

Возможность доступа к предшественникам. В главе о средствах отладки мы рассматривали понятие целей-предшественников. В Прологе-10 предусмотрены встроенные предикаты, обеспечивающие доступ к предшественникам из Пролог-программы.

Статистическая информация. В Прологе-10 предусмотрены встроенные предикаты, позволяющие получить данные о скорости выполнения вашей программы и объеме памяти, необходимой для ее выполнения.

Оглавление книги


Генерация: 9.041. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз