(05/08/2011 11:21 PM), Yusuke ENDOH wrote:
> 遠藤です。
> 
> 2011年5月8日23:01 Shyouhei Urabe <shyouhei / ruby-lang.org>:
>> というわけでmapなんだけど配列じゃなくてEnumeratorを返すmapの変種があ
>> るといいとおもうのですがどうでしょうか。
> 
> 賛成です。以下のようなコードを書くときいつも気になってました。
> 
>   big_ary.map {|x| ... }.max

たぶん def _map; Enumerator.new {|y| each {|i| y << yield(i) } }; end
はみんな一回は書いたことがあると思うので、需要はほぼ問題ないかと思います

> ただ、map だけでなく、select や take にも適用できる convension
> を決めるべきだと思います。

まあ、そうなればいいのは間違いないですけども、話を大きくしすぎるのも発散して終
了するいつものパターンになりそうな気もするので。堅実に攻めたいと思います。

> 「遅延評価」の英語は、普通は lazy か delay だと思います。
> rude というのを聞いたことがありません。ただいずれにしても 5 文字
> 以上の追加は長すぎるように思います。

遅延評価であるとみなせるのは事実としても遅延評価っていう言い方をしなきゃいけな
いことはないですよね。特に私の用途の場合は途中で配列を作らないというだけの話で
あって、結局全部評価するわけですし。

あとまあ、とりあえず名前がしっくり来ないときは長めの名前にしといて後から短いや
つを考えるというのは定石かと。べつにどうしてもrudeじゃなきゃいかんという信念が
あるわけではないです。

>> いきなりmapの戻り値の型が変わるのでも私はいいですけど
>> ちょっとやりすぎかとも思います。
> 
> 2.0 でなら、これもいいと思います。

mathnみたいにrequireすると挙動が上書きされて、いやでもそれは状態がグローバルだ
からよくなくてselector namespaceがないと、でもそれはやっぱ話が大きくなりすぎだ
なあ。

やっぱmapがいきなり変わるのは堅実ではないので、実装としては今回提案したものを
推していきたい(+名前変更とか)ですね。