我正在研究我在我的一个课程中看到的一个简单的 Prolog 示例,使用并重新实现“附加”。这就是我所拥有的(来自课堂):
append1([],L,L).
append1([X|L1],L2,[X|L3]) :-
append1(L1,L2,L3).
当我这样做时,结果为假:
append1([a,b],[c,d],L).
false.
但是当我这样做(使用内置追加)时,结果为真:
append([a,b],[c,d],L).
true.
为什么有区别?
为什么以下这两个附加示例甚至都导致“真”?出于某种原因,我希望看到 Ls 的值列表...
append(L1,L2,[a,b,c]).
true.
append([a,b],[c,d],L).
true.