Язык логического программирования ПРОЛОГ. Бураков М.В. - 16 стр.

UptoLike

Составители: 

14
Программа 7
PREDICATES
gorod(symbol)
show
GOAL
write(“Это города:”),nl,show.
CLAUSES
gorod(“москва”). gorod(“минск”).
gorod(“киев”). gorod(“омск”).
show :- gorod(X), write(X),nl,fail.
После запуска будут напечатаны все названия городов. Проверьте,
как будет работать программа без предиката fail.
Использование предиката cut
Предикат отсечения cut обозначается с помощью символа !. Он по-
зволяет получить доступ только к части данных, устраняя дальнейшие
поисковые действия. В общем виде можно записать, например:
R : – A,B, !, C
Это означает, что если для целей А и В найдено хотя бы одно реше-
ние, то дальнейший перебор возможных вариантов значений А и В не
нужен. Программы 8 и 9 иллюстрируют действие предиката cut.
Программа 8
DOMAINS
person=symbol
PREDICATES
deti(person)
show
make_cut(person)
GOAL
write(“Это мальчики:”),nl,show.
CLAUSES
deti(“Петя”).deti(“Вася”).deti(“Олег”).
deti(“Маша”).deti(“Оля”).deti(“Наташа”).
show :- deti(X),write(X),nl,make_cut(X),!.
make_cut(X) :- X=”Маша”.
Программа 8 напечатает только имена мальчиков.