Enumerable系イテレータメソッドにブロックを渡さないとEnumeratorを返す。 が、これがまた使い道がない。
唯一うれしいのはwith_indexメソッドである。 たとえば、「map_with_indexがほしい」という話を時々聞くが、 これがあると
ary.map.with_index{|x, i|...}
とすれば出来上がりである。 しかし、それ以外のEnumeratorのメソッドはあっても役に立たないし、 そもそも使い道がよくわからない。
いっそ、Enumeratorではなく違うオブジェクトを返すべきではないかしらん。 その場合にはきっとwith_indexしかないオブジェクトなんだろう。 Enumeratorが持つby_sliceメソッドとかby_consメソッドとか追加してみたけど、 結局役に立たなかったし(で、HEADから消した)。
with_indexのようなブロック呼び出しを修飾するタイプのメソッドって 他にありえるのかなあ。
なんでそんなことをしたいのかいまいち不明だが、 Oracle自身がLinuxのサポートも行うという話。
RedHatを敵に回したいわけでもないだろうし、 自分ならRedHatよりうまくやれると思ってるわけでもないだろうし。
あと、日本ではミラクルリナックスがあるのでちょっと面倒なことになる... のかな。やや、顧客層は違いそうだけど。
それからRedHatの反論。 互換性については適切かどうかわからないけど、他は筋は通ってそう。