flatMap

各要素にある関数を適用し、それらを結合します。 つまり、r.map!fun.concatと等価です

flatMap
(
alias fun
R
)
(
R r
)
if (
isInputRange!R
)

Examples

debug scope(failure) writefln("Unittest Failure :%s(%s) ", __FILE__, __LINE__);
debug scope(success) {writefln("Unittest Success :%s(%s)", __FILE__, __LINE__); stdout.flush();}

auto r1 = [1, 2, 3, 4];
assert(equal(r1.flatMap!"repeat(a, a)", [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]));

auto r2 = ["a b c", "de f", "ghi", "jkl mn"];
assert(equal(r2.flatMap!split, ["a", "b", "c", "de", "f", "ghi", "jkl", "mn"]));

auto r3 = [1, 2];
assert(equal!equal(r3.flatMap!"repeat(a, a).repeat(a)",
    [[1], [2, 2], [2, 2]]));

Meta