如何为CLPFD中的变量赋值?

时间:2013-05-19 23:23:02

标签: prolog clpfd sicstus-prolog

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

但我真的不知道它是否正确。而且,我不确定这是否是一种正确的方法。

1 个答案:

答案 0 :(得分:4)

这是一种完美的方式。