Forcing evaluation

### 9.1.5 Forcing evaluation

unquote is used for evaluation inside a quoted expression.

For example in an assignment, the variable is automatically quoted (not evaluated) so that the user does not have to quote it explicitly each time he want to modify its value. In some circumstances, you might want to evaluate it.

purge(b);a:=b; unquote(a):=3

The variable b begins as a purely symbolic variable, and the value of a is equal to the symbolic variable b. In the assignment unquote(a):=3, the left hand side unquote(a) is evaluated to b, and so b is assigned the value 3. Since a evaluates to the same thing as b, a also evaluated to 3.

a,b

3,3 |  |  |  |  |  |  |  |  |  |