[net.lang] Multiple assignments [long, but

richw@ada-uts (06/03/86)

CLU supports multiple assignment to some extent.  For instance, you
can use the following to swap the values of two variables:

    x, y := y, x

You can even define procedures which return more than one result.
As an example header, you could define a procedure to return the
numerator and the denominator (after reduction) for a fraction:

    components = proc (f : Fraction) returns (int, int)

However, CLU limits the use of such a procedure.  Although you can
"catch" the results using assignment:

    n, d := Fraction$components(f)

you can't use both results as procedure arguments in one call:

    sum := Int$add(Fraction$components(f))     % Nope !

(note that %'s introduce comments in CLU).