В любой реализации Пролога обычно
Резюме
- В любой реализации Пролога обычно предусматривается набор встроенных процедур для выполнения различных полезных операций, несуществующих в чистом Прологе. В данной главе мы рассмотрели подобное множество предикатов, имеющееся во многих реализациях.
- Тип терма можно установить при помощи следующих предикатов:
var( X) Х - (неконкретизированная) переменная
nonvar( X) Х - не переменная
atom( X) Х - атом
integer( X) Х - целое
atomic( X) Х - или атом, или целое
- Термы можно синтезировать или разбирать на части:
Терм =.. [Функтор [ СписокАргументов]
functor( Терм, Функтор, Арность)
arg( N, Терм, Аргумент)
name( атом, КодыСимволов)
- Программу на Прологе можно рассматривать как реляционную базу данных, которую можно изменять при помощи следующих процедур:
аssert( Предл) добавляет предложение Предл к программе
аssегtа( Предл) добавляет в начало
asserfz( Предл) добавляет в конец
rеtrасt( Предл) удаляет предложение,
сопоставимое с предложением Предл
- Все объекты, отвечающие некоторому заданному условию, можно собрать в список при помощи предикатов:
bagof( X, Р, L) L - список всех X, удовлетворяющих условию Р
setof( X, Р, L) L - отсортированный список всех X,
удовлетворяющих условию Р
findall( X, Р, L) аналогичен bagof
- repeat - средство управления, позволяющее порождать неограниченное число альтернатив для автоматического перебора.