我在Prolog中有这个程序:
foo([],L2,L2).
foo(L1,[],L1):-L1=[_|_).
foo([H1|T1],[H2|T2],[H1|T3]):-foo(T1,[H2|T2],T3).
foo([H1|T1],[H2|T2],[H2|T3]):-foo([H1|T1],T2,T3).
我运行查询
foo([1,2],[a],R).
我得到了:
[1,2,a]
当我输入分号(;
)以获得更多答案时,我得到False
...但是当我使用回溯手动运行它时我也得到了答案[1,a,2]
我不明白为什么编译器只给出一个答案。