Sather Home
        Page

Examples 7.2.2:
BOOL

The features of the pervasive class BOOL are used in individual examples below.

not

The following two code fragments are identical in meaning although the first will usually be more efficient (dependent upon the implementation).

if truth_value then
...
else
...
end

if truth_value then
...
elsif truth_value.not then
...
end

Note that truth_value.not is the identical infix expression to ~truth_value.

is_eq

In practice it is not often necessary to use an equality test on two truth values. However, this is provided for completeness as -

if truth_value = true then ...

which is, of course, identical to

if truth_value then ...

and

Where it is necessary to satisfy two conditions simultaneously before taking some action then the following could be written -

case first_pred
and second_pred
when true then
do_something

when false then
do_something_else

end

which uses a case construction as an alternative to an if-statement.

or

The other canonical logical operator could be used in expressing the following version of De Moivre's theorem.

~(A and B) = ~A or ~B

where A and B are truth values.


Specification Index Language Index Section 7 Index
Comments or enquiries should be made to Keith Hopper.
Page last modified: Wednesday, 25 October 2000.
Produced with Amaya