2

マニュアルには、バックトラッキングを介して昇順で変数 (X と呼びましょう) に値を割り当てる述語がありindomain/1ます。

カスタムのラベル付け述語を作成しようとしているときに、変数 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

しかし、それが正しいかどうかはよくわかりません。また、それが適切な方法であるかどうかもわかりません。

4

1 に答える 1