findall(+ Template,:Goal,-Bag)收集第一个成功结果并将其放入Bag之后,是否有任何方法可以立即更改目标,例如我们的新目标取决于我们刚刚找到的结果?例如,下面的查询返回LIST = [1,2,3,4,5]。由于新的最小值为1,我们如何强制它返回LIST = [1]?
:-use_module(library(clpfd)).
num(X):-
X in 1..5,
indomain(X).
?- MIN is 10, findall(X,(num(X),X<MIN),LIST).