[ 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

- callable(?) is semidet

### 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