From abca5fc4058aa1f98109525b779670d5d34ed567 Mon Sep 17 00:00:00 2001 From: Markus Triska Date: Tue, 23 Aug 2022 21:21:17 +0200 Subject: [PATCH] better implementation of list_si/1 Per discussion in https://github.com/mthom/scryer-prolog/pull/1589. --- src/lib/si.pl | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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), -- 2.54.0