Lambda syntax for methods and functions

MattCoder mattcoder at hotmail.com
Sat Dec 7 11:50:00 PST 2013


On Saturday, 7 December 2013 at 18:13:06 UTC, bearophile wrote:
> MattCoder:
>
>> Maybe It's just me, but on the example above I don't see too 
>> much improvement:
>>
>> 1 word off ("return"), and "=>" instead of brackets.
>
> In D:
>
> Point move(in int dx, in int dy) pure nothrow {
>     return Point(X + dx, Y + dy);
> }
>
> Point move(in int dx, in int dy) pure nothrow => Point(X + dx, 
> Y + dy);
>
> It saves you almost 10% of typing, and makes more visible that 
> move is an expression. If you use UFCS chains a lot, many 
> functions become small and they sometimes contain just an 
> expression.

Well,I think you have a point here.

> Currently in D you can write:
>
> enum move = (in int dx, in int dy) pure nothrow => Point(X + 
> dx, Y + dy);

Interesting, I didn't know about this. Thanks for the tip.

Matheus.


More information about the Digitalmars-d mailing list