]> Repositorios git - scryer-prolog.git/commitdiff
ADDED: type pair
authorMarkus Triska <[email protected]>
Sat, 8 Mar 2025 13:42:48 +0000 (14:42 +0100)
committerMarkus Triska <[email protected]>
Sat, 8 Mar 2025 13:42:48 +0000 (14:42 +0100)
src/lib/error.pl

index 81c676df00f7ccb268b67ab16557f1e52650f0e2..67df8a32f683a22664ed16082a032989c4124e26 100644 (file)
@@ -37,6 +37,7 @@
 %     - list
 %     - octet_character
 %     - octet_chars
+%     - pair
 %     - term
 
 must_be(Type, Term) :-
@@ -83,6 +84,7 @@ must_be_(octet_chars, Cs) :-
 must_be_(list, Term)    :- check_(error:ilist, list, Term).
 must_be_(type, Term)    :- check_(error:type, type, Term).
 must_be_(boolean, Term) :- check_(error:boolean, boolean, Term).
+must_be_(pair, Term)    :- check_(error:pair, pair, Term).
 must_be_(term, Term)    :-
         (   acyclic_term(Term) ->
             (   ground(Term) ->  true
@@ -105,6 +107,9 @@ check_(Pred, Type, Term) :-
         ;   type_error(Type, Term, must_be/2)
         ).
 
+
+pair(_-_).
+
 boolean(B) :- ( B == true ; B == false ).
 
 character(C) :-
@@ -140,6 +145,7 @@ type(var).
 type(boolean).
 type(term).
 type(not_less_than_zero).
+type(pair).
 
 %% can_be(Type, Term)
 %
@@ -188,6 +194,7 @@ can_(octet_chars, Cs) :-
         ).
 can_(list, Term)    :- list_or_partial_list(Term).
 can_(boolean, Term) :- boolean(Term).
+can_(pair, Term)    :- pair(Term).
 can_(term, Term)    :-
         (   acyclic_term(Term) ->
             true