[ Type Testing | Reference Manual | Alphabetic Index ]

callable(?Term)

Succeeds if Term is callable, i.e. of type atom or compound.
Term
Prolog term.

Description

Used to test whether Term is a 'callable' term, i.e. whether it is an atom or compound term, and could therefore be used as a goal. Note that this is a purely syntactic check which does not say anything about the existence of a corresponding predicate.

This predicate is equivalent to

    callable(X) :- atom(X).
    callable(X) :- compound(X).
Note that it also succeeds for lists.

Modes and Determinism

Fail Conditions

Fails if Term is not an atom or a compound term

Examples

Success:
   callable(true).
   callable(hello("world",42)).
   callable(f(1,2)).
   callable([1,2,3]).
   callable(.(1,2)).
   callable(foo).
   callable([]).

Fail:
   callable("f(1,2)").
   callable(_).
   callable(42).
   make_suspension(true,0,S), callable(S).

See Also

atom / 1, compound / 1, is_list / 1, is_array / 1, var / 1