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.

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

谢谢,如果这个问题很简单,我很抱歉......我是新手。

4

1 回答 1

2

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

你应该更换:

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

和:

newlist([],List,List,X):-length(List,X).
于 2013-02-22T07:11:40.733 回答