zip vs. lockstep -- problem when setting values

Joseph Rushton Wakeling joseph.wakeling at webdrake.net
Fri Jun 28 06:19:35 PDT 2013


Consider the following equivalent code using zip and lockstep respectively to
iterate over the entries in an array and set their values:

    auto arr1 = new double[10];
    foreach(i, ref x; zip(iota(10), arr1))
    {
        x = i;
    }
    writeln(arr1);

    auto arr2 = new double[10];
    foreach(i, ref x; lockstep(iota(10), arr2))
    {
        x = i;
    }
    writeln(arr2);

The first array will still be full of nan's when it is output, while the second
will have values set correctly.  Can anyone offer a reasonable explanation why
this should be so?  It looks like a bug to me, or at best an unreasonable
difference in functionality. :-(


More information about the Digitalmars-d-learn mailing list