【发布时间】:2014-04-25 02:19:41
【问题描述】:
我需要在序言中写出表达以下句子的子句
“除了约翰,每个人都会死”
这是我的条款:
not(mortal(john)).
mortal(_).
但是当我查询 ?- mortal(john). 时,它返回的是 true 而不是 false。
怎么了?
【问题讨论】:
-
mortal(_).表示任何人都会死。而且您的事实相互矛盾(您说两者都是事实)。你需要类似mortal(X) :- X \= john.的东西(如果X不是john,X是致命的)。 “事实”not(mortal(john)).不是表达约翰死亡或死亡事实的正确方式。
标签: prolog