Пролог программа, которая перечисляет факты о том, кто является родителем, кто, а кто женщина, а кто мужчина - PullRequest
0 голосов
/ 22 февраля 2019

У меня возникли проблемы с пониманием того, как запустить эту программу в Прологе.

Цель: Создать программу на Прологе, в которой перечислены факты о том, кто является родителем, а кто женщиной, а кто мужчиной.Основываясь на этих фактах, он также кодирует правила о том, что определяет мать, а что определяет отец.Тем не менее, функции мать и отец не могут быть использованы в действительности.

Примеры:

?- mother(X, tommy)
X = jane
?- father(X, tommy)
X = john
?- mother(X, tammy)
X = beth
?- father(X, tammy)
X = mike

Любая помощь приветствуется.Как бы я поступил так?

1 Ответ

0 голосов
/ 22 февраля 2019

Это очень распространенное упражнение в прологе, и просто быстрый Google дает бесчисленное множество решений, похожих на то, что вы ищете!Давайте добавим информацию, которую нам дал пример, в набор фактов.

parent(jane, tommy).
parent(beth, tammy).
parent(john, tommy).
parent(mike, tammy).

female(jane).
female(beth).

male(john).
male(mike).

функции, которые мать и отец не могут использовать в факте.

Таким образом, мы должны найти способ обойти это.Итак, что мы знаем, если вы мать, вы должны быть женщиной, а если вы отец, вы должны быть мужчиной.

mother(X, Y):-
    parent(X, Y),
    female(X).

father(X, Y):-
    parent(X, Y),
    male(X).

Так что, когда вы напишите father(X, tammy)., он вернется X = mike,Я бы порекомендовал прыгнуть через этот github , так как подход очень похож.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...