在下面的查询中,首先我得到X = H128,它来自哪里?又为什么返回是?是否因为实际上未定义变量X而我们正在测试该条件?

?- not(X==3).
X = H128
yes

最佳答案

您的查询使用的是未实例化的变量(X)。
当检查X是否用术语3实例化时(X == 3),它失败,因为X未实例化。

因此,not(X == 3)将成功,因为序言引擎无法证明X == 3。
因此,您的序言解释器返回“是”(由于否定了解释器的失败方法),并且X未被实例化。

这就是为什么解释器显示X = H128,其中H128是伪未实例化变量的原因。

关于prolog - Prolog查询返回H128,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6669690/

10-13 08:57