Lambda syntax for methods and functions

monarch_dodra monarchdodra at gmail.com
Mon Dec 9 01:57:08 PST 2013


On Saturday, 7 December 2013 at 20:23:29 UTC, Timon Gehr wrote:
> On 12/07/2013 07:13 PM, bearophile wrote:
>>
>> Currently in D you can write:
>>
>> enum move = (in int dx, in int dy) pure nothrow => Point(X + 
>> dx, Y + dy);


I didn't know you could do that, neat.

It also means you can do it for implicit template, I suppose. You 
can't do it for declaring a function, but I suppose it works for 
declaring a lambda, and storing it in a enum:

enum moveRight(int DX) = (in int dx) pure nothrow => dx + DX;

> IIRC Don said this shouldn't work since the context is not 
> actually known at compile time.

I only see this being a problem if the lambda actually needs 
access to the context.


More information about the Digitalmars-d mailing list