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.