Merge pull request #1948 from triska/chars_si

add character_si/1 and use it to correct chars_si/1
This commit is contained in:
Mark Thom
2023-08-03 18:34:19 -06:00
committed by GitHub

View File

@@ -36,6 +36,7 @@
integer_si/1,
atomic_si/1,
list_si/1,
character_si/1,
chars_si/1,
dif_si/2]).
@@ -62,9 +63,15 @@ list_si(L0) :-
; throw(error(instantiation_error, list_si/1))
).
chars_si(Cs) :-
list_si(Cs),
'$is_partial_string'(Cs).
character_si(Ch) :-
functor(Ch,Ch,0),
atom(Ch),
atom_length(Ch,1).
chars_si(Chs) :-
\+ \+ length(Chs,_),
\+ ( once(length(Chs,_)), member(Ch,Chs), nonvar(Ch), \+ character_si(Ch) ),
\+ ( member(Ch,Chs), \+ character_si(Ch) ). % for the instantiation error
dif_si(X, Y) :-
X \== Y,