手册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
但我真的不知道它是否正确。此外,我不确定这是否是正确的方法。