我是PROLOG的新手,我正处于this page练习的最开始阶段。给定父(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)
| ?-
答案 0 :(得分:12)
\+/1
是ISO Prolog谓词“否定”。请注意,“否定”在这里意味着不可证明。
您可以通过@false参考this excellent answer了解有关主题的更多信息
答案 1 :(得分:6)
解决方案实际上在该页面的练习文件中:
female(X) :- \+ male(X).
正如@Mog所说,否定是一元\+
运算符。