初学prolog,请教为什么以下的翻转列表代码不对呢?
reverse([H],[H]).
reverse([H | T],[R | [H]]) :-
reverse(T,[R]).
看别人的翻转是这么写的
reverse(List, Reversed) :-
reverse(List, [], Reversed).
reverse([], Reversed, Reversed).
reverse([Head|Tail], SoFar, Reversed) :-
reverse(Tail, [Head|SoFar], Reversed).
请问为什么需要增加一个reverse/3的规则?