Return value handling in imperative languages is really awkward.
In many you cannot have multiple return values. I propose a syntax for making in and out parameter handling symmetric:
(type1 in1, type2 in2) myFunction (type3 out1, type4 out2)
{
in1 in2 + =: out1;
}
whereas in function composition, all out parameters form the input parameters for the next function:
( ( in1, in2 )myFunction )myFunction2 =: res;
Read more!
