Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
7.8. Используя bagof, определите отношение
множподмножеств(Мн, Подмн)
для вычисления множества всех подмножеств данного множества (все множества представлены списками).
7.9. Используя bagof, определите отношение
копия(Терм, Копия)
чтобы Копия представляла собой Терм, в котором все переменные переименованы.
Резюме
• В любой реализации Пролога обычно предусматривается набор встроенных процедур для выполнения различных полезных операций, несуществующих в чистом Прологе. В данной главе мы рассмотрели подобное множество предикатов, имеющееся во многих реализациях.
• Тип терма можно установить при помощи следующих предикатов:
var(X) X — (неконкретизированная) переменная
nonvar(X) X — не переменная
atom(X) X — атом
integer(X) X — целое
atomic(X) X — или атом, или целое
• Термы можно синтезировать или разбирать на части:
Терм =.. [Функтор [ СписокАргументов]
functor(Терм, Функтор, Арность)
arg(N, Терм, Аргумент)
name(атом, КодыСимволов)
• Программу на Прологе можно рассматривать как реляционную базу данных, которую можно изменять при помощи следующих процедур:
аssert(Предл) добавляет предложение Предл к программе
аssеrtа(Предл) добавляет в начало
assertz(Предл) добавляет в конец
rеtrасt(Предл) удаляет предложение, сопоставимое с предложением Предл
• Все объекты, отвечающие некоторому заданному условию, можно собрать в список при помощи предикатов:
bagof(X, P, L) L — список всех X, удовлетворяющих условию P
setof(X, P, L) L — отсортированный список всех X, удовлетворяющих условию P
findall(X, P, L) аналогичен bagof
• repeat — средство управления, позволяющее порождать неограниченное число альтернатив для автоматического перебора.
Дата публикования: 2015-10-09; Прочитано: 164 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!