:- use_module(library(lists),[nth0/3]). sml(N, Max, Es0,Es) :- '$skip_max_list'(N, Max, Es0,Es). fastnth0(N, Es0, E) :- nonvar(N), '$skip_max_list'(N, N, Es0,Es), !, Es = [E|_]. fastnth0(N, Es, E) :- nth0(N, Es, E).