ENHANCED: Use '$skip_max_list'/4 for greater efficiency of nth0/3.

This is now possible due to 4c7e2eb8614da9c04f2286f6116b468017fb442c.

See #1529 for the suggestion by @UWN.
This commit is contained in:
Markus Triska
2022-08-21 13:51:12 +02:00
committed by Mark Thom
parent 47892bf24a
commit 7c5318b784

View File

@@ -247,16 +247,10 @@ nth0(N, Es, E) :-
can_be(integer, N),
can_be(list, Es),
( integer(N) ->
nth0_index(N, Es, E)
'$skip_max_list'(N, N, Es, [E|_])
; nth0_search(N, Es, E)
).
nth0_index(0, [E|_], E) :- !.
nth0_index(N, [_|Es], E) :-
N > 0,
N1 is N - 1,
nth0_index(N1, Es, E).
nth0_search(N, Es, E) :-
nth0_search(0, N, Es, E).