Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Различные результаты запроса в прологе

Автор вопроса: CommunityОтветов: 1

У меня вопрос по прологу. Вот База Знаний.

loves(vincent,mia).
loves(marcellus,mia).
loves(pumpkin,honey_bunny).
loves(honey_bunny,pumpkin).

jealous(X,Y) :-
   loves(X,Z),
   loves(Y,Z).

Это из книги "Изучите Prolog сейчас". Теперь, если я сделаю запрос ?- jealous(marcellus,W)., он вернет это W = vincent, но если я задам запрос ?- jealous(vincent,W)., результатом будет W=vincent Так что это означает, что Винсент завидует себе, а Марселлус не завидует себе. Почему ответ другой? Я использую swipl в Ubuntu Linux, который находится в VirtualBox на winxp. Я новичок в Прологе.

Спасибо

prolog

Ответы

Ответ 1 · рейтинг 2 · joel76

После ответа W = vincent на запрос ?- jealous(marcellus,W). введите ; вместо Enter и получите W = marcellus. Необходимо добавить то, что X \= Y в jealous/2.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы