]> Repositorios git - scryer-prolog.git/commitdiff
replace sort_without_dedup/2 with keysort/2
authorMark Thom <[email protected]>
Fri, 9 Jan 2026 04:29:26 +0000 (20:29 -0800)
committerMark Thom <[email protected]>
Thu, 15 Jan 2026 04:39:48 +0000 (20:39 -0800)
src/lib/builtins.pl

index ae3d2742ce9347c0bd54237724f1219317a44a8c..9253aabf95f9b860968be96b1590d6f97a0ff57c 100644 (file)
@@ -1003,10 +1003,6 @@ findall_with_existential(Template, Goal, PairedSolutions, Witnesses0, Witnesses)
 
 :- non_counted_backtracking unify_variant_variables/2.
 
-:- non_counted_backtracking sort_without_dedup/2.
-
-:- non_counted_backtracking tag_pairs/2.
-
 split_by_variant([V2-S2 | Pairs], V1-S1, Solutions, Rest) :-
     (  V1 == V2 ->
        Solutions = [S2 | Solutions1],
@@ -1029,15 +1025,6 @@ unify_variant_variables([V-_S|Pairs], Dict) :-
     lists:append(VVars, _, Dict),
     unify_variant_variables(Pairs, Dict).
 
-tag_pairs([], []) :- !.
-tag_pairs([V-S|UntaggedPairs], [V-S-_I|TaggedPairs]) :-
-    tag_pairs(UntaggedPairs, TaggedPairs).
-
-sort_without_dedup(UnsortedPairs, SortedPairs) :-
-    tag_pairs(UnsortedPairs, TaggedUnsortedPairs),
-    sort(TaggedUnsortedPairs, TaggedSortedPairs),
-    tag_pairs(SortedPairs, TaggedSortedPairs).
-
 :- meta_predicate(bagof(?, 0, ?)).
 
 :- non_counted_backtracking bagof/3.
@@ -1069,7 +1056,7 @@ bagof(Template, Goal, Solution) :-
     lists:append(TemplateVars, Witnesses0, TGVs),
     findall_with_existential(Template, Goal, PairedSolutions, Witnesses0, Witnesses),
     unify_variant_variables(PairedSolutions, _Dict),
-    sort_without_dedup(PairedSolutions, PairedSolutions1),
+    keysort(PairedSolutions, PairedSolutions1),
     split_by_variant(PairedSolutions1, Witnesses, Solution).
 
 :- meta_predicate(setof(?, 0, ?)).