Преобразуйте заявления в код пролога - PullRequest
3 голосов
/ 04 мая 2011

Эй Я пытаюсь преобразовать следующие утверждения в код пролога, но я не уверен, правильно ли я это сделал.

1 - всех, кто уважает себя, уважают другие:

   respects(x,respects(x)) :- respects(y,x)).

2-Джон уважает себя:

respectsherself(john).
respects(john,respectsherself(john)).

Спасибо

Ответы [ 2 ]

1 голос
/ 04 мая 2011

В прологе переменные должны начинаться с заглавной буквы, так что следите за этим.

Все, кто уважает себя, уважаются другими. Я думаю, что вам нужны некоторые основные факты, например, кто кого уважает. Тогда вы можете объявить правило, которое гласит, что Х уважают другие, подразумевается, что Х уважает Себя.

 respects(john, mary). %john respects mary
 respects(john, john). %john respects himself
 respects(X, Y) :- respectedbyothers(Y). %X respects Y if Y is respected by others
 respectedbyothers(X):-respects(X, X).
0 голосов
/ 06 мая 2011

Оптимизация:% респектов (A, B) означает, что A соблюдается B респектами (john, john).уважает (X, _): - уважает (X, X).?

Разве ты не любишь пролог :))

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