我是 PROLOG 的新手,并且在本页练习的最开始。给定规则父(X,Y)和男性(X),我试图将规则母亲(X,Y)定义为
mother(X, Y) :-
not(male(X)),
parent(X, Y).
但是,在 GNU Prolog 中,我收到以下错误:
| ?- mother(lina, julia).
uncaught exception: error(existence_error(procedure,not/1),mother/2)
| ?-
\+/1
是“否定”的 ISO Prolog 谓词。请注意,“否定”是指此时无法证明。
您可以参考@false 提供的这个出色的答案,以了解有关该主题的更多信息
解决方案实际上在该页面的练习文件中:
female(X) :- \+ male(X).
正如@Mog 所说,否定是一元运算\+
符。