0
foo/3是一個謂詞,用兩個列表做一些事情並輸出另一個列表。我不認爲我得到Prolog的遞歸
foo([], Ys, Zs) :-
append(Zs, Ys, Final),
write(Final),
% ?
foo([X|Xs], Ys, Zs) :-
stuff(X, Ys, NewYs, NewZs),
foo(Xs, NewYs, NewZs).
我想最終成爲像foo([1,2,3],[a,b,c],L)這樣的頂級調用中的L)。我看着蹤跡,似乎我正在做一些倒退;
...
Exit: (9) write([c]) ?
Exit: (8) foo([], [], [c]) ?
Exit: (7) foo([c], [], []) ?
L = [].
如果您更具體地描述*您想要做什麼,這個問題可能會更容易回答。 – 2011-03-31 17:57:20