Why Ruby?
Jacob Carlborg
doob at me.com
Sun Dec 19 07:49:29 PST 2010
On 2010-12-18 23:41, Walter Bright wrote:
> Jacob Carlborg wrote:
>> foo(x, y => x * y);
>
> The problem with all these is what is the difference between:
>
> { x * y }
> { x * y; } <== note the ;
> { return x * y; }
I would say there is no difference. The delegeate would be inferred to
have the same type as the function requires.
Take this for example, "foo" is declared like this:
void foo (int delegate (int x, int y) dg);
And called like this:
foo(x, y => x * y);
Then the delegate would be inferred to be:
int delegate (int, int)
If you add a semicolon or a return in the lambda body it would be
inferred to the same type.
> The C++ lambda group had the same discussions.
>
> It may not seem like much when the code is trivial, but when it gets
> more complex, having 2 or 3 different syntaxes for function bodies seems
> like a confusing disaster in the making.
The point is to only use the syntax when the code is trivial, like in
the above example.
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list