Joe Gottman writes:
> How do you declare a function that doesn't return anything? For instance, a
> C++ swap function might be declared
>    template <class X>
>     void swap(X &x, X &y);
> 
> It would be nice to declare the corresponding Perl6 function as
> sub swap ($x is rw, $y is rw) returns nothing {...}
> or something similar.

Use the Void pseudo-type:

    sub swap ($x is rw, $y is rw) returns Void {...}

Or if you're in a more C-ish mood:

    our Void sub swap ($x is rw, $y is rw) {...}

> This would be an absolute necessity if you wanted to emulate C++, Java, or
> any other strongly typed language.
> 
> Also, it could be useful for causing a compile-time error if someone types
> something like
>     $z = swap($x, $y);
> 
> Joe Gottman
> 
> 
> 

Reply via email to