nrev([],[]) :- !.
nrev([X|Y],Z) :- nrev(Y,Z1), app(Z1,[X],Z).

app([],L,L) :- !.
app([X|Y],L,[X|Z]) :- app(Y,L,Z).
try :- ex(X), nrev(X,Y).

ex([1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0]).
                                                                                                                                                                                                                                                                                                                