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),
rational (rational/1)
and blob (blob/2).
In addition, the symbol
[]
(empty list) is atomic, but not an atom. See
section 5.1.