numbervars/3 meta-logical

Synopsis

numbervars(+-Term, +FirstVar, -LastVar)

instantiates each of the variables in Term to a term of the form '$VAR'(N).

Arguments


Term term

FirstVar integer

LastVar integer

Description

FirstVar is used as the value of N for the first variable in Term (starting from the left). The second distinct variable in Term is given a value of N satisfying "N is FirstVar+1"; the third distinct variable gets the value FirstVar+2, and so on. The last variable in Term has the value LastVar-1.

Notice that in the example below, display/1 is used rather than write/1. This is because write/1 treats terms of the form '$VAR'(N) specially; it writes A if N=0, B if N=1, ...Z if N=25, A1 if N=26, etc. That is why, if you type the goal in the example below, the variable bindings will also be printed out as follows:

     Term = foo(W,W,X),
     A = W,
     B = X
     

Exceptions


instantiation_error
Number and Chars are both instantiated
type_error
Number is not a number or Char is not a list

Example

     | ?- Term = foo(A, A, B), numbervars(Term, 22, _),
          display(Term).
     foo($VAR(22),$VAR(22),$VAR(23))
     

See Also

write_term/1, write_canonical/1