Type tests are semi-deterministic predicates that succeed if the
argument satisfies the requested type. Type-test predicates have no
error condition and do not instantiate their argument. See also library
library(error)
.
"hello"
.45In
traditional Prolog systems, double quoted text is often mapped to a list
of character codes. See also the Prolog flag
double_quotes.atomic(Term) :- nonvar(Term), \+ compound(Term).
SWI-Prolog defines the following atomic datatypes: atom (atom/1),
string (string/1),
integer (integer/1),
floating point number (float/1)
and blob (blob/2).
In addition, the symbol []
(empty list) is atomic, but not
an atom. See section 5.1.
:- meta_predicate p(0). p(G) :- callable(G), call(G). ?- p(22). ERROR: Type error: `callable' expected, found `22' ERROR: In: ERROR: [6] p(user:22)