首页 > prolog初学之列表翻转问题

prolog初学之列表翻转问题

初学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的规则?

【热门文章】
【热门文章】