我只是在学习 Prolog 和 Prolog 中差异列表的概念,所以请多多包涵。
我有以下代码:
:- op(400, xfx, \).
append(Xs, Ys, Zs) :-
append_dl( [Xs|T1]\T1, [Ys|T2]\T2, Zs\[]).
append_dl( Xs\Ys, Ys\Zs, Xs\Zs).
现在,如果我在 SWI 解释器中附加列表 [1,2,3] 和 [a,b,c] 它会产生列表列表
?- append([1,2,3],[a,b,c],Zs).
Zs = [[1, 2, 3], [a, b, c]].
而如果我像这样直接调用 append_dl:
?- append_dl([1,2,3|T1]\T1,[a,b,c|T2]\T2,Zs\[]).
T1 = [a, b, c],
T2 = [],
Zs = [1, 2, 3, a, b, c].
有用...
我在做什么错,应该如何正确使用差异列表来包装这些功能?
谢谢你们的帮助:D