[ 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

• arity(+, -) is det

### 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).
```