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:
@@ -247,16 +247,10 @@ nth0(N, Es, E) :-
|
|||||||
can_be(integer, N),
|
can_be(integer, N),
|
||||||
can_be(list, Es),
|
can_be(list, Es),
|
||||||
( integer(N) ->
|
( integer(N) ->
|
||||||
nth0_index(N, Es, E)
|
'$skip_max_list'(N, N, Es, [E|_])
|
||||||
; nth0_search(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(N, Es, E) :-
|
||||||
nth0_search(0, N, Es, E).
|
nth0_search(0, N, Es, E).
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user