R E V E R S E a list - back to content

	reverse/2 is Prolog predicate

		?- reverse([a,b,c],L).
		L=[c,b,a]
		?- my_reverse([m,e,l,a,n,i,e],R).
		R = [e,i,n,a,l,e,m]
		?- my_reverse([a,[b,1],c],R).
		R = [c,[b,1],a]

my_reverse([],[]). my_reverse([H|T],L):- my_reverse(T,R),append(R,[H],L).
my_reverse/2 written with the technique of the collector variable my_reverse(L1,R):- rev(L1,[],R). rev([],L,L). rev([H|T],L,M):- rev(T,[H|L],M).