]> Repositorios git - scryer-prolog.git/commitdiff
ENHANCED: improved determinism of member/2 lookahead_indexing origin/lookahead_indexing
authorMarkus Triska <[email protected]>
Wed, 12 Jul 2023 05:26:52 +0000 (07:26 +0200)
committerMark <[email protected]>
Wed, 12 Jul 2023 20:39:08 +0000 (14:39 -0600)
Example:

    ?- member(X, "abc").
    %@    X = a
    %@ ;  X = b
    %@ ;  X = c.

This addresses #750.

src/lib/lists.pl

index 815e2b2a2dba96a64bd38c1e8dd073d0244df230..8a94ed6ac942f4f0a5c70abd08a6455837d4cc8d 100644 (file)
@@ -122,8 +122,13 @@ length_addendum([_|Xs], N, M) :-
 %    X = h
 % ;  ... .
 % ```
-member(X, [X|_]).
-member(X, [_|Xs]) :- member(X, Xs).
+
+member(X, [L|Ls]) :-
+        member_(Ls, L, X).
+
+member_(_, X, X).
+member_([L|Ls], _, X) :-
+        member_(Ls, L, X).
 
 %% select(X, Xs0, Xs1).
 %