9.86 Void

When an expression is not in a value context, it is given type Void. For example, in the expression

r := (a; b; if c then d else e; f)

values are used only from the subexpressions c and f: all others are thrown away. The subexpressions a, b, d and e are evaluated for side-effects only and have type Void. There is a unique value of type Void.

You will most often see results of type Void when you declare a variable.

a : Integer


Usually no output is displayed for Void results. You can force the display of a rather ugly object by issuing )set message void on.

)set message void on
b : Fraction Integer

Type: Void

)set message void off

All values can be converted to type Void.



Once a value has been converted to Void, it cannot be recovered.

% :: PositiveInteger
Cannot convert from type Void to PositiveInteger for value "()"