From d5e76da475b92fa1afd0549526fe6cbff9643e1b Mon Sep 17 00:00:00 2001 From: Markus Triska Date: Sun, 7 Jun 2020 19:24:51 +0200 Subject: [PATCH] ADDED: type checks for type boolean --- src/prolog/lib/error.pl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/prolog/lib/error.pl b/src/prolog/lib/error.pl index 83111884..b75dc310 100644 --- a/src/prolog/lib/error.pl +++ b/src/prolog/lib/error.pl @@ -27,7 +27,8 @@ - integer - atom - - list. + - list + - boolean - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ must_be(Type, Term) :- @@ -45,6 +46,7 @@ must_be_(integer, Term) :- check_(integer, integer, Term). must_be_(atom, Term) :- check_(atom, atom, Term). must_be_(list, Term) :- check_(ilist, list, Term). must_be_(type, Term) :- check_(type, type, Term). +must_be_(boolean, Term) :- check_(boolean, boolean, Term). check_(Pred, Type, Term) :- ( var(Term) -> instantiation_error(must_be/2) @@ -52,6 +54,8 @@ check_(Pred, Type, Term) :- ; type_error(Type, Term, must_be/2) ). +boolean(B) :- ( B == true ; B == false ). + ilist(V) :- var(V), instantiation_error(must_be/2). ilist([]). ilist([_|Ls]) :- ilist(Ls). @@ -61,6 +65,7 @@ type(integer). type(atom). type(list). type(var). +type(boolean). /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - can_be(Type, Term) @@ -86,6 +91,7 @@ can_be(Type, Term) :- can_(integer, Term) :- integer(Term). can_(atom, Term) :- atom(Term). can_(list, Term) :- list_or_partial_list(Term). +can_(boolean, Term) :- boolean(Term). list_or_partial_list(Var) :- var(Var). list_or_partial_list([]). -- 2.54.0