On Wednesday, 7 November 2018 at 14:46:17 UTC, Alex wrote:
On Wednesday, 7 November 2018 at 14:07:32 UTC, 9il wrote:
This is a regression. It is fixed in mir-random v2.1.2.

Thanks. But I have another one:

´´´
import mir.random.algorithm;
import std.experimental.all;

void main()
{
        S[] arr;
        arr.length = 42;
        arr.each!((i, ref el) => el.i = i);
        auto res = rne.sample(arr.map!((ref el) => el.i), 1);
}

struct S { size_t i; }
´´´

Does not depend, on whether I use (ref el) or just el... And should not depend on that ;)

I have updated template constraints.
http://docs.random.dlang.io/latest/mir_random_algorithm.html#.sample

The problem that looks like Phobos map does not define all required primitives like popFrontExactly. I suggest using Mir instead of Phobos if possible:


https://run.dlang.io/is/NBTfwF

/+dub.sdl:
dependency "mir-algorithm" version="~>3.0.3"
dependency "mir-random" version="~>2.1.1"
+/

import mir.random.algorithm;
import mir.algorithm.iteration;
import mir.ndslice: sliced, iota, map, member;

void main()
{
        S[] arr;
        arr.length = 42;
    // using each
        arr.length.iota.each!((i, ref el) => el.i = i)(arr);

    // or using each and member
    arr.length.iota.each!"b = a"(arr.member!"i");

    // or using assign
    arr.member!"i"[] = arr.length.iota;

        auto res0 = rne.sample(arr.map!((ref el) => el.i), 1);
    // or using member
        auto res1 = rne.sample(arr.member!"i", 1);

}

struct S { size_t i; }


Reply via email to