2015-03-18 60 views
0

streching名單我有一個相對簡單的問題要問: 我希望能夠把在序言

這樣的: [[[A],B],C]

到這一點: [A,b,C]

與不斷變化的名單,到目前爲止,我已經做到了這一點:

a([[[A],B],C]). 
strechList(List,C):- 
    List=[H,T], 
    append(T,List1,C), 
    strechList(H,List1). 
strechList(A,A). 

,但它不工作我是比較新的序言ç請有人幫助我。

+0

'[H,T]'是隻有兩個元素的列表。我假設你的意思是'[H | T]'這是一個列表,其第一個元素(* head *)是'H',* tail list *是'T'。你的規則'strechList(A,A).'說任何列表都是它自己的延伸,這聽起來不正確。 – lurker 2015-03-18 23:43:05

回答

1

該謂詞被稱爲「扁平化」。如果您使用SWI-Prolog,它是內置的。 另請檢查this的答案。

+0

謝謝我實際上使用SWi-prolog,這真的很有幫助。 :) – 2015-03-19 03:37:21