miércoles, 23 de enero de 2008

Invertir Lista en Lenguaje Prolog

Inversion de una lista

reverse([],[]).
reverse([H|T],L):-reverse(T,S),append(S,[H],L).

% o bien mas eficiente, utilizando un parametro acumulador.

rev(L1,L2):-rev(L1,L2,[]).

rev([],L,L).
rev([H|T],L,S):-rev(T,L,[H|S]).