2011-05-12 84 views
0

我使用SWI-Prolog,我想列出其他幾個列表。如何在序言中創建列表

例如,我想提出以下三個列表

[a,b,c] 
[1,2] 
[d] 

成一個較大的一個,看起來像[[a,b,c],[1,2],[d]]

divideList([]):-!. 

divideList([Head|Tail]):- 
    list_to_set(Head,H),%H is a List 
    divideList(Tail). 

我想把所有的H放在一個列表中。 我該怎麼做?

+1

問題不明確。你有沒有固定數量的列表,你想把它放在一個列表中? – gusbro 2011-05-12 19:03:13

+0

是的,我有三個列表,但可以更改。我想把它們放在更大的一個。 – Mary 2011-05-12 20:05:17

+0

假設三個列表與變量A,B,C統一,那麼您只需編寫[A,B,C] – gusbro 2011-05-12 20:11:32

回答

0

的問題是,你不使用你的謂詞H至放列表中選擇所需

這應該這樣做

divideList([], []):-!. 
divideList([Head|Tail], [H|HTail]):- 
    list_to_set(Head,H),%H is a List 
    divideList(Tail, HTail). 

第二個參數將有你的名單列表。

+0

根本不需要切割。 – 2011-05-13 08:30:54

+0

@larsman:對,但我剛剛添加了OP代碼中缺少的內容,所以我將其保留原樣。 – gusbro 2011-05-13 13:22:59