在第三个列表中连接两个列表
Concatenation of two lists in a third one
我正在尝试使用 header concat(whole, part1, part2)[=25 编写谓词 concat/3 =] 如果 part1 和 part2 是两个 not-empty 子序列,当连接形成序列 whole。例如
concat(A, [12, a, z],[1, 2, 3, 4])
回答为
A = [12, a, z, 1, 2, 3, 4]
。我查看了 append/3
,但是当我更改它时将整体作为第一个参数,它失败了。到目前为止,这是我的代码:
concat(List, [], List).
concat([Head|Rest], [Head|Tail], List) :-
concat(Rest, Tail, List).
当我问 concat(A,[a],[b]).
时,它回答“否”
查看 中的答案。
基本上,您需要检查两者是否都是非空列表,然后追加(Res, L1, L2).
我正在尝试使用 header concat(whole, part1, part2)[=25 编写谓词 concat/3 =] 如果 part1 和 part2 是两个 not-empty 子序列,当连接形成序列 whole。例如
concat(A, [12, a, z],[1, 2, 3, 4])
回答为
A = [12, a, z, 1, 2, 3, 4]
。我查看了 append/3
,但是当我更改它时将整体作为第一个参数,它失败了。到目前为止,这是我的代码:
concat(List, [], List).
concat([Head|Rest], [Head|Tail], List) :-
concat(Rest, Tail, List).
当我问 concat(A,[a],[b]).
时,它回答“否”
查看