2013-05-19 53 views
2

manual中有一個謂詞indomain/1,它通過回溯向增量順序賦值給一個變量(我們稱之爲X)。如何爲CLPFD中的變量賦值?

我想改變分配給變量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

您可以將'member(Val,List),X = Val'縮短爲'member(X,List)'。 – mat

回答

4

這是一個完美的做法。