std.algorithm.mapが使えねー
久しぶりにD言語の愚痴を。
とりあえずstd.algorithm.mapがイマイチ。
なにが使えないかってmapの返す型です。
Ranges[0] map(string fun,Ranges...)(Ranges rs);
具体的にはこれ書こうとしてエラー出るのが嫌
map!(toInt)(words);//文字列の配列を数値の配列に変換
これは引数がstringだから、
戻り値もstringにしないと駄目なので通らない(dmd v2.011)
ようするに(A->A)->[A]->[A]じゃなくて(A->B)->[A]->[B]が欲しい
というわけでphobosを適当書き換え。
やったことは非常に簡単。
map関数の戻り値の型を以下のように書き換えればOK。
- Ranges[0] map(string fun, Ranges...)(Ranges rs) + typeof(unaryFun!(fun)(Ranges[0][0]))[] map(string fun, Ranges...)(Ranges rs) - Ranges[0] map(alias fun, Ranges...)(Ranges rs) + typeof(fun(Ranges[0][0]))[] map(alias fun, Ranges...)(Ranges rs)