在prolog中使用not fact(某物)时获取控制错误

在prolog中使用not fact(某物)时获取控制错误,prolog,Prolog,我有一个事实: test(something). 当我写作时: test(X). not test(X). 答案是:X=某物,但当我写: test(X). not test(X). 我得到: '错误21:控制错误 ! 目标:不是………' 为什么?? 我想答案应该是“不” 当我不是自己实施时: not(P):- P,!,fail ; true. 并写下: nottestX Prolog的回答是“否” 如果运行alpha testX,也会发生同样的情况 您要寻找的

我有一个事实:

test(something).
当我写作时:

test(X).
not test(X). 
答案是:X=某物,但当我写:

test(X).
not test(X). 
我得到:

'错误21:控制错误 ! 目标:不是………'

为什么?? 我想答案应该是“不”

当我不是自己实施时:

 not(P):-
   P,!,fail
   ;
   true.
并写下: nottestX


Prolog的回答是“否”

如果运行alpha testX,也会发生同样的情况

您要寻找的not是一个一元谓词,表示要证明的目标:

所以您必须编写nottestX。但你不应该;改用\+testX

查询alpha testX的作用是什么。意思是我不确定…

不是\+。。。。你也可以使用不。。。