2013-02-22 31 views
1

我是新來的序言和希望得到以下問題的任何幫助:Prolog的結合兩份名單

我需要寫一個接受兩個列表,並首先附加第二和顯示這個新的列表和其長度的程序。我知道prolog可能有一些內置的函數來使這更容易...但我不想使用它們。

如:newlist([a,b,c],[d,e,f],L3,Le).將返回L3=[a,b,c,d,e,f]Le=6

這是我到目前爲止有:

newlist([],List,List,0) 

newlist([Element|List1],List2,[Element|List3],L) :- newlist(List1,List2,List3, LT), L is LT + 1. 

這並不正確的追加,但我只能得到第一個列表的長度,而不是組合名單。有沒有辦法讓我將第二個列表的長度添加到第一個列表中以獲得組合列表長度?

謝謝,如果這個問題相當簡單,我很抱歉......我是新的。

回答

2

有沒有辦法讓我把第二個列表的長度加到第一個來得到組合列表的長度?

,就應該替換:

newlist([],List,List,0). 

有:

newlist([],List,List,X):-length(List,X). 
+0

不幸的是,當我這樣做,我得到一個存在的差錯。你是否假設我已經定義了長度? – ilikecats 2013-02-22 07:19:13

+0

它是大多數序言環境中的內置謂詞。然而,如果不是,你可以用與newlist相似的方式來定義它。 – 2013-02-22 07:25:42

+0

謝謝,先生。已解決。 :) – ilikecats 2013-02-22 07:28:29