Настройка правила? - PullRequest
       2

Настройка правила?

0 голосов
/ 02 апреля 2020

Я пытаюсь по правилам проверить, нравится ли кому-то другой друг, кроме того, который указан в аргументе. Так, например,

likes(Alice,Bob).
likes(Bob,Alice).
likes(Alice,Jeff).
likes(Jeff,Alice).

Я пытаюсь создать правило friends(X,Y), что если они оба похожи друг на друга, мы ищем другую пару, с которой либо X, либо Y связаны , Любая помощь?

1 Ответ

0 голосов
/ 04 апреля 2020

Первое решение возвращает первого человека, который обнаружил, что одному из двух людей нравится, если эти два человека любят друг друга.

likes(alice,bob).
likes(bob,alice).
likes(alice,jeff).
likes(jeff,alice). 

friends_aux(X, Y, Z) :- likes(Y, Z), Z \= X.
friends_aux(X, Y, Z) :- likes(X, Z), Z \= Y.
friends(X, Y, Z) :- likes(X, Y), likes(Y, X), friends_aux(X, Y, Z), !.

И второе решение возвращает истину, если у любого из этих двух людей есть любая другая пара.

friends2_aux(X, Y) :- likes(Y, Z), Z \= X.
friends2_aux(X, Y) :- likes(X, Z), Z \= Y.
friends2(X, Y) :- likes(X, Y), likes(Y, X), friends2_aux(X, Y), !.

Я приложил изображение результатов.

Результаты

Надеюсь, это то, что вы хотели.

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