From: Markus Triska Date: Tue, 23 Aug 2022 19:21:17 +0000 (+0200) Subject: better implementation of list_si/1 X-Git-Tag: v0.9.1^2~26 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=abca5fc4058aa1f98109525b779670d5d34ed567;p=scryer-prolog.git better implementation of list_si/1 Per discussion in https://github.com/mthom/scryer-prolog/pull/1589. --- diff --git a/src/lib/si.pl b/src/lib/si.pl index 7fc3a596..d697c8a8 100644 --- a/src/lib/si.pl +++ b/src/lib/si.pl @@ -43,9 +43,15 @@ integer_si(I) :- atomic_si(AC) :- functor(AC,_,0). -list_si(L) :- - \+ \+ length(L, _), - sort(L, _). +% list_si(L) :- +% \+ \+ length(L, _), +% sort(L, _). + +list_si(L0) :- + '$skip_max_list'(_,_, L0,L), + ( nonvar(L) -> L = [] + ; throw(error(instantiation_error, list_si/1)) + ). chars_si(Cs) :- list_si(Cs),