
Этот вопрос можно задать нашей пролог-системе ив такой форме:
?- родитель( X, Y),родитель( Y, джим).
При этом результат будет тем же. Таким жеобразом можно спросить: "Кто внуки Тома?"
?- родитель( том, X),родитель( X, Y).
Система ответит так:
X = боб
Y = энн;
X = боб
Y = пат
Следующим вопросом мог бы быть такой: "Естьли у Энн и Пат общий родитель?" Его тоже можновыразить в два этапа:
(1) Какой Xявляется родителем Энн?
(2) Является ли (тотже) X родителем Пат?
Соответствующий запрос к пролог-системе будеттогда выглядеть так:
?- родитель( X, энн),родитель( X, пат).
Ответ:
X = боб
Наша программа-пример помоглапроиллюстрировать некоторые важные моменты:
На Прологе легко определить отношение, подобное отношению родитель, указав n-ку объектов, для которых это отношение выполняется.
Пользователь может легко задавать пролог-системе вопросы, касающиеся отношений, определенных в программе.
Пролог-программа состоит из предложений. Каждое предложение заканчивается точкой.
Аргументы отношения могут быть (среди прочего): конкретными объектами, или константами (такими, как том и энн), или
абстрактными объектами, такими, как
X
и
Y
. Объекты первого типа называются
атомами
. Объекты второго типа -
переменными
.
Вопросы к системе состоят из одного или более целевых утверждений (или кратко целей).
