0

我想使用以下方法将列表的第一个元素添加到另一个列表:

findall(X, nth1(1, List1, X,), List2).

但它返回错误。

有人知道为什么吗?

4

2 回答 2

1

简单的:

ListFirst = [a, b, c],
ListSecond = [d, e, f],
ListFirst = [Head|Tail],
ListSecondNew = [Head|ListSecond].

结果:

ListFirst = [a,b,c],
ListSecond = [d,e,f],
Head = a,
Tail = [b,c],
ListSecondNew = [a,d,e,f].
于 2022-01-23T22:58:52.673 回答
0

如果您的语法正确(在 中没有第三个逗号nth1/3)并且我们放入了一些具体列表,那么它似乎可以满足您的要求:

?- findall(X, nth1(1, [a,b,c], X), List2).
List2 = [a].

如果您实际上有两个列表并且您正在尝试生成第三个列表,那么这可以工作:

?- List2=[x,y,z], List1=[a,b,c], [H|_]=List1, append([H],List2,Output).
List2 = [x, y, z],
List1 = [a, b, c],
H = a,
Output = [a, x, y, z].
于 2022-01-23T22:43:24.827 回答