2011-05-04 76 views
3

嘿 我试图将以下语句转换为序言代码,但我不确定自己是否正确执行了此操作。将语句转换为序言代码

1 - 大家谁尊重自己被别人的尊重:

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

2约翰·尊重自己:

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

感谢

回答

1

在Prolog的变量必须以大写字母开头这样注意这一点。每个尊重自己的人都会受到别人的尊重。我认为你需要一些基本的事实,比如谁尊重谁。然后你可以声明一个规则,即X尊重他人的规则被X尊重他自己所暗示。

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

这将是很好,如果'方面(BEN,约翰).'给TRUE;因为'ben'是其他。 – Kaarel 2011-05-04 06:27:55

+0

@Kaarel谢谢。添加。 – 2011-05-04 10:16:03

0

的优化: %方面(A,B)表示A被B推崇 方面(约翰,约翰)。 (X,_): - 尊重(X,X)。 ?

难道你不爱序言:)

相关问题