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.