manual中的谓词indomain/1
通过回溯以递增的顺序将值赋给变量(让我们称之为X)。
我想在编写自定义标注谓词时更改分配给变量X的值的顺序。我想出了这段代码:
fd_set(X, X_as_set),
fdset_to_list(X_as_set, X_as_list), % now I have domain of the variable X in form of a list
% sort X_as_list in some way and return the changed list as X_as_list2
member(Val, X_as_list2),
X = Val % assign value to CLPFD variable
但我真的不知道它是否正确。而且,我不确定这是否是一种正确的方法。
答案 0 :(得分:4)
这是一种完美的方式。