L = [a,b,c | _]。 - 不完整列表的示例。我如何追加其中两个?如何撤消不完整列表?有人可以给我一些如何处理这些问题的提示吗?
追加([X | T],Y [X | R]): - 追加(T,Y,R)。这是附加两个列表的方式。
答案 0 :(得分:2)
?- A=[1,2,3|X], B=[a,b,c|Y], X=B.
A = [1, 2, 3, a, b, c|Y],
X = B, B = [a, b, c|Y].
这些模式没什么用处。
正如@Daniel Lyons建议的那样,你也可以使用append / 3
?- A=[1,2,3|X], B=[a,b,c|Y], append(A,B,C).
A = [1, 2, 3],
X = [],
B = [a, b, c|Y],
C = [1, 2, 3, a, b, c|Y]
您可以看到这些模式之间的区别:第一个直接将X绑定到B(1个推断),而追加需要一些等于第一个列表长度的推断,以便在绑定之前到达尾部。