ごとけんです

In message "[ruby-dev:3131] Re: Enumerable#reverse"
    on 98/06/30, TAKAHASHI Masayoshi <maki / inac.co.jp> writes:

>高橋です。

>> ま、そんなわけですが、Enumerable から reverse 削除と
>> Sequential/Sequence の提案はいかがですか? 
>
>これって、EnumerableはSequentialであることは保証されない、
>ということでいいんでしょうか?

えっと、each は Enumerable のメソッドではなくて
include する側で用意するものです。
ですから高橋さんが心配されてるような each の順序が
不定になることは別の問題です。

なお、ぼくの考えは、「いつだか分からない将来」に、
Enumerable#find などは実装が許せばブロックの一回の
実効が終わる前にブロックの次の評価を始める、
とゆーものです。この場合は順序の不定性が問題になる
かも知れません。が、これは大風呂敷を広げすぎでしょうか? 
# 実装の大変さを知らないからムチャ言ってる ^^;

そう考えると、collect もそういう concurrent な動作を
「するかも知れない」と言うモノにしても良いかな? 
# あと思い付いたんですけどさらに collect はレシーバーの
# クラスのオブジェクトを返すとか。
# これなら、ふなばさんが口を滑べらせた ^^;; collect! 
# も意味を持ちます。

考えを進めたんですけど Array のような列指向のモノと
Hash のような集合指向のモノは今の段階でインクルード
するモジュールを分けとくそれぞれ強化しやすいんじゃ
ないか思います。複雑な割に無意味でしょうか? 
現状の全て Array に還元して考えることにする方が単純
で良いのかなぁ…

話を戻すと、Enumerable#reverse がないと困る人は
いないのでしょうか? ぼくはもう完全に削除すべし
論者になってますが。

-- gotoken