2014-04-25 68 views
0

我需要寫在序言中表達下面的句子條款這個Prolog子句有什麼問題?

「每個人都是凡人,但約翰」

這裏是我的條款:

not(mortal(john)). 

mortal(_). 

但是當我查詢?- mortal(john).它返回true而不是false。

有什麼不對?

+1

'凡人(_)。'意味着任何人都是凡人。而你的事實相互矛盾(你說的都是事實)。你需要像'mortal(X)': - X \ = john.'(如果'X'不是'john',''X''就是必需的)。 「事實」不是(凡人約翰)不是表達約翰死亡或缺乏事實的正確方法。 – lurker

+0

謝謝,它的工作 –

回答

1

它沒有問題。

你有兩個事實: -

not(mortal(john)). 
mortal(_). 

運行查詢?- mortal(john).不能結合對第一個事實,因爲它不是結構上相同,但它可以綁定針對第二。