[ Term Manipulation | Reference Manual | Alphabetic Index ]
arity(+Term, -Arity)
Succeeds if Arity is the arity of Term.
- Term
- Prolog term.
- Arity
- Variable or integer.
Description
    If Term is instantiated, its arity (number of arguments) is unified
    with Arity.  For compound terms, this is the number of arguments,
    for atomic terms it is 0.  As usual, non-empty lists are considered
    compound terms with arity 2.
    Note that (like all predicates that return a number as their last
    argument), this predicate can be used as a function inside arithmetic
    expressions, e.g.
	..., (I > arity(Term) -> writeln(error), fail ; arg(I, Term, Arg) ).
Modes and Determinism
Exceptions
- (4) instantiation fault 
- Term is uninstantiated (non-coroutine mode only).
Examples
Success:
   arity(f(1,2),2).
   arity(f(1,2),A).    (gives A=2).
   arity([],A).        (gives A=0).
   arity("s",A).     (gives A=0).
   arity(33,A).        (gives A=0).
Fail:
   arity(f(1,2),3).
   arity("compound(g)",1).
Error:
   arity(_,A).         (Error 4).
See Also
=.. / 2, arg / 3, functor / 3