Как присвоить значение переменной в CLPFD?

Предикат 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

Но я действительно не знаю, правильно это или нет. Более того, я не уверен, что это правильный способ, как это сделать.


person Martin Vseticka    schedule 19.05.2013    source источник
comment
Вы можете сократить member(Val, List), X = Val до member(X, List).   -  person mat    schedule 23.05.2013


Ответы (1)


Это прекрасный способ сделать это.

person Mats Carlsson    schedule 21.05.2013