cons(H, T, L) :- L = [H|T].

append([], L2, L2).
append([H|T], L2, [H|T2]) :- append(T, L2, T2).

reverse([], []).
reverse([H|T], L) :- reverse(T, RT), append(RT, [H], L).
