Availability:built-in

**numbervars**(

`+Term, +Start, -End`)

`Term`with a term

`$VAR(N)`

,
where `N`is the number of the variable. Counting starts at

`Start`.

`End`is unified with the number that should be given to the next variable.

^{bugOnly tagged integers are supported (see the Prolog flag max_tagged_integer). This suffices to count all variables that can appear in the largest term that can be represented, but does not support arbitrary large integer values for Start. On overflow, a representation_error(tagged_integer) exception is raised.}The example below illustrates this. Note that the toplevel prints

`'$VAR'(0)`

as `A`due to the

`numbervars(true)`

option used to print answers.
?- Term = f(X,Y,X), numbervars(Term, 0, End, [singleton(true)]), write_canonical(Term), nl. f('$VAR'(0),'$VAR'('_'),'$VAR'(0)) Term = f(A, _, A), X = A, Y = B, End = 2.

See also the `numbervars`

option to write_term/3
and numbervars/4.