在第三个列表中连接两个列表

Concatenation of two lists in a third one

我正在尝试使用 header concat(whole, part1, part2)[=25 编写谓词 concat/3 =] 如果 part1part2 是两个 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).