append([],L,L). append([H|L1],L2,[H|L3]):- append(L1,L2,L3). member(H,[H|_]). member(H,[_|T]):- member(H,T). rev(L,Revl):- rev(L,[],Revl). rev([],L,L). rev([H|L1],L2,M):- rev(L1,[H|L2],M). nexto(X,Y,[X,Y|_]). nexto(X,Y,[_|Z]):- nexto(X,Y,Z). replace(O,N,[O|T],[N|R]):- replace(O,N,T,R). replace(O,N,[X|T],[X|R]):- replace(O,N,T,R). replace(_,_,[],[]). delete(A,[A|T],T). delete(A,[H|T],[H|R]):- delete(A,T,R). delall(X,[X|T],M):- delall(X,T,M). delall(X,[H|T],[H|Y]):- delall(X,T,Y). delall(_,[],[]). nth(1,[H|T],H). nth(N,[H|T],El):- N1 is N-1, nth(N1,T,El). length(N,L):- length(N,0,L). length(Ans,Ans,[]). length(N,Acc,[H|T]):- NewA is Acc + 1, length(N,NewA,T). last(X,[X]). last(X,[_|Y]):- last(X,Y).