まつもと ゆきひろです

In message "[ruby-dev:8614] Re: Enumerable and rand"
    on 99/12/09, Koretsugu Daigoro <tmmcross / hk.airnet.ne.jp> writes:

|> ぼくも、size/length のみをはずすと言うまつもとさんの案に賛成
|> です。Enumerable#random_get を書いててそう思いました。有限性
|> とEnumerableは独立だと考えるからです
|
|でも、ほかの有限性を要求するメソッドは残すんですよね?

はい。

|Enumerable であること以上を要求するメソッドがちょっと多過ぎです。
|殊に要素が有限であることを要求するメソッドと、
|<=> を要求するメソッドがあるのは少し気持ち悪いです。

同意します。でも、便利なんだもん。^^;;;

|厳密であることより簡便であることを優先している(ように見える)現状では、
|(そういう意味では Enumerable#rand も間違いではない?)
|Enumerable#size/length も IO include Enumerable も
|特にいじらなくてもよいのではないか、と思っているんですが、
|
|  * IO/File オブジェクトにとってすべての要素とはなにか。
|  * Enumerable のメソッドは必ずすべての要素を参照すべきか。
|
|をどう考えるかによっては、
|違う結論になるかもしれません。

ですね。

結局 IO のような副作用があり再現性が無いパターンに対しても
sort, grepなどは最初の一回についてはそれなりに便利です。しか
し、要素数はあまりにも取り出してくる情報が少なすぎ(主観)。

というのが、size/lengthを取り除いた理由です。現状では要素数
が無限で Enumerable をインクルードしたクラスは組み込み/標準
添付にはないですから、こちらは自己責任で逃げようと思ってます。

|# 名前の問題、sample/sampling は?
|# 結論: ランダムが前面に出ないのでいまいち。

名前は難しい。
                                まつもと ゆきひろ /:|)