1

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

    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,我就会在 (<) 上得到一个实例化错误。我不明白为什么它不会只返回不。

4

1 回答 1

0

我发现了我的问题,有点。我仍然不确定为什么会发生这种情况,但我对标签的工作原理有一个不好的理解。我找到了一种从谓词中得到我想要的答案的方法。

于 2013-04-25T19:57:03.207 回答