On Monday, 18 September 2017 at 14:45:25 UTC, Alex wrote:
Hi all,
given this code:

import std.algorithm.iteration : sum, cumulativeFold;

void main()
{
        double[5] a;
        a = 0;
        foreach(el; a) assert(el == 0);
        a[0] = 1.0;
        a[1] = 2.0;
        a[2] = 3.0;
        a[3] = 4.0;
        a[4] = 5.0;
        foreach(el; a) assert(el != 0);
        auto asum = a[].sum;
        auto jProbs = a[].cumulativeFold!((a, b) => (a + b)/asum);
}

the last line does not compile.

I found
http://forum.dlang.org/post/mailman.4097.1499105927.31550.digitalmars-d-b...@puremagic.com
and
https://issues.dlang.org/show_bug.cgi?id=11886

What I do not understand, how my example differs from the fixed bug?

asum is a lazy range and the error comes from this.
Let's say that if you replace asum by 1.23 then the code compiles.

Reply via email to