在下面的查询中,首先我得到了X = H128
,它来自哪里?还为什么它回来了?是因为变量X
实际上没有定义,我们正在测试这个条件?
?- not(X==3).
X = H128
yes
Run Code Online (Sandbox Code Playgroud)
您的查询使用的是未实例化的变量(X).当检查X是否使用术语3(X == 3)实例化时,它会失败,因为X未实例化.
因此,不是(X == 3)会成功,因为prolog引擎无法证明X == 3.因此,您的prolog解释器返回'yes'(由于解释器的失败方法的否定),并且X仍未实例化.
这就是解释器显示X = H128的原因,其中H128是虚拟的未实例变量.