map

それは each じゃなくて map か collect でしょうといわれた。
全くその通りだと思った。
一番初めに思い出したメソッド名が each だったから…
あと、配列だけでなくて配列の振る舞いをするインスタンスにも使えると良いですね、というつっこみをうけて、若干弄りました。

T map(T, U)(T ary, U dg){
    typeof(ary[0])[] rary;
    rary.length = ary.length;
    foreach (int i, typeof(ary[0]) t; ary){
        rary[i] = dg(t);
    }
    return rary;
}

そして早速「MyArray ary; ary = ary.each( ... );」とかし始める。できないよ!配列しか第一引数略せないよ!