所以我在test.pl文件中写了这个事实:
bottle(b1).
bottle(b2).
bottle(b3).
bottle(b4).
full(b1,100).
full(b2,750).
full(b3,500).
full(b4,250).
consume(X, Y). :-full(X,Z);Z>=Y.
单词的最后一行: 如果消耗的Y参数小于瓶子已满的参数,则应该返回true。但是,如果我查询这个函数,我总是得到真实的结果。我是Prolog的新手,所以如果你能解释错误出现的原因并指出我正确的方向如何解决这个错误,那将是一种善意。
答案 0 :(得分:0)
一个迷路点。
% original
consume(X, Y). :-full(X,Z);Z>=Y.
% modified
consume(X, Y) :-full(X,Z);Z>=Y.
请注意,这只会解决“始终存在”的问题。