Custom Blocks

Robert Jacques sandford at jhu.edu
Wed Aug 11 19:25:46 PDT 2010


On Wed, 11 Aug 2010 17:54:35 -0400, Tomek Sowiński <just at ask.me> wrote:

> Robert Jacques napisał:
>
>>> I was thinking something like this:
>>>
>>> void fun(int x, int y, int z, delegate void(int, int, int) dg)
>>>
>>> fun(x, y, z, a, b, c) { body }
>>>
>>> |
>>> V
>>>
>>> fun(x, y, z, (a, b, c) { body });
>>
>> Mixing function args with delegate args makes me think of foreach:
>>
>> fun(x, y, z, (a, b, c) { body });   <=>  fun(a, b, c; x, y, z) { body }
>
> All great, but if there's no remedy for the return WTF, I'd leave this  
> (nice) feature in the drawer.
>
> void foo() {
>     fun(a, b, c; x, y, z) {
>         return;  // who returns?
>     }
> }
>
>
> Tomek

Fun does. This is the same as function/delegate literals today.
Of course, putting a return statement inside a foreach block is probably a  
buggy edge case right now; sometimes it causes the parent scope to return  
and sometimes it doesn't compile.


More information about the Digitalmars-d mailing list