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