比较两个不同的值时出现实例错误

时间:2013-04-25 19:30:44

标签: comparison prolog instantiation

我有一个如下所示的谓词:

    condition_met([(X + 1) < 5 | Rest]) :- condition_met(Rest),
                                           at(X,_),
                                           write('X = '),
                                           write(X),
                                           Temp is (X + 1),
                                           Temp < 5, !.

at(X,Y)是我在运行查询之前断言的。当我断言这两个值是使查询成为真的数字时,它运行正常。但是一旦我断言X大于4,我就会在(&lt;)上得到一个实例化错误。我不明白为什么它不会只返回没有。

1 个答案:

答案 0 :(得分:0)

我发现了我的问题。我仍然不确定为什么会这样,但我对标签的工作方式有不了解。我找到了一种方法来从谓词中得到我想要的答案。