#### Synopsis

`-Term is +Expression`

Evaluates Expression as an arithmetic expression, and unifies the resulting number with Term.

#### Arguments

Expression

expr, must be ground.

• functors representing arithmetic operations
• numbers
• variables bound to numbers or arithmetic expressions
Term

number

#### Exceptions

Arithmetic errors (see ref-ari-exc).

#### Examples

```| ?- X is 2 * 3 + 4.

X = 10

| ?- Y = 32.1, X is Y * Y.

X = 1030.41
Y = 32.1

| ?- Arity is 3 * 8, X is 4 + Arity + (3 * Arity * Arity).

Arity = 24
X = 1756
```
```| ?- X is 6/0.
! Domain error in argument 2 of is/2
! expected an integer not equal to 0, but found 0
! goal:  _98 is 6/0
```
```| ?- X is "a".

X = 97

| ?- X is 4 * 5, Y is X * 4.

X = 20,
Y = 80
```

If a variable in an arithmetic expression is bound to another arithmetic expression (as opposed to a number) at runtime then the cost of evaluating that expression is much greater. It is approximately equal to the cost of `call/1` of an arithmetic goal.