2011-04-12 44 views
0

例如,我創建列表如下如何動態地設置域列表

length(List,5), 
List :: 1..5, 

我想設置列表的第二個元素,它看起來像 List[1] :: 1..2%列表,從0到4

我不知道如何實現它?

非常感謝:)

回答

1

例如,使用in運營商束縛水飽和度,序言,我可以這樣做:

init_static(List) :- length(List, 5), List in 1..5, List = [_,Y|_], Y in 1..2. 

,如果我事先知道,我需要的第二個元素特定的約束。

要概括爲任何指數:

init_dynamic(I, List) :- length(List, 5), List in 1..5, length(L1, I), Y in 1..2, append(L1, [Y|_], List). 

所以對於第二要素的查詢是:

init_dynamic(1, [1,2,4,3,5]). 
true. 

我認爲你可以做類似的事情在其他Prolog的變種::運營商。

+0

布拉沃,非常感謝:) – funlive 2011-04-12 17:41:15