On Wed, Nov 26, 2008 at 7:34 AM, bearophile <[EMAIL PROTECTED]> wrote:
> This is the code I have used for DMD 2.021. I was not sure how to use the 
> scope, so if you have improvements please tell me:
>
> import std.c.stdio: printf;
>
> int a(scope int k, lazy int x1, lazy int x2, lazy int x3, lazy int x4, lazy 
> int x5) {
>    scope int delegate() b;
>    b = {
>        k -= 1;
>        return a(k, b(), x1, x2, x3, x4);
>    };
>    return k <= 0 ? x4 + x5 : b();
> }
>
> The code was too much slow in D2, so I have stopped it. Do you know if the D2 
> code can be improved to have performance similar to D1 ones?

Can you try declaring b as a nested function instead of as a delegate
literal and see if that helps?  (why are you declaring it the way you
are, anyway?

Reply via email to