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