-1
例如,如果N是2,它會創建列表如下,並設置自己的價值如何動態地創建列表和設置自己的價值
L = [S1,S2],
L :: 1..10.
如果N 3,將箱子列表如下,並設置自己的價值
L = [S1,S2,S3],
L :: 1..10.
非常感謝:)
例如,如果N是2,它會創建列表如下,並設置自己的價值如何動態地創建列表和設置自己的價值
L = [S1,S2],
L :: 1..10.
如果N 3,將箱子列表如下,並設置自己的價值
L = [S1,S2,S3],
L :: 1..10.
非常感謝:)
您是否在尋找水木清華般
list(N, List) :-
numlist(1, N, List).
這使得
?- list(5, L).
L = [1, 2, 3, 4, 5].
還是什麼?
UPD:
kal(N, Lists) :- govna(N, [[]], [_ | Lists]), !.
govna(0, Ans, Ans).
govna(N, List, Com) :-
numlist(1, 10, X),
append(List, [X], ListNew),
NewN is N - 1,
govna(NewN, ListNew, Com).
是這個嗎?
?- kal(2, X).
X = [[1, 2, 3, 4, 5, 6, 7, 8|...], [1, 2, 3, 4, 5, 6, 7|...]].
爲了使長度N
的列表,使用length/2
用變量作爲第一個參數:
1 ?- N=4, length(List,N).
N = 4,
List = [_G487, _G490, _G493, _G496].
它不喜歡的是,我要實現類似的功能:列表= [S1, S2,S3,S4],List :: 1..10。它會動態地創建列表並設置他的域名,我需要爲每個項目添加前綴:( – funlive 2011-04-10 18:25:45
函數必須接受一個參數併產生結果?你的情況下的參數和結果是什麼? – 2011-04-10 18:41:01
例如:%pass列表長度N,%創建列表L的長度爲N,%設置域L :: 1..10,%將該列表傳遞給另一個函數 – funlive 2011-04-10 18:50:09