Prolog结合两个列表

时间:2013-02-22 06:43:47

标签: list prolog append

我是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.

这会正确添加,但我只能得到第一个列表的长度而不是组合列表。有没有办法让我将第二个列表的长度添加到第一个以获得组合列表长度?

谢谢,对不起,如果这个问题相当容易......我是新人。

1 个答案:

答案 0 :(得分:2)

  

我有没有办法将第二个列表的长度添加到第一个以获得组合列表长度?

你应该替换:

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

使用:

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