From: matz@... (Yukihiro Matsumoto) Date: 1999-12-02T12:25:43+09:00 Subject: [ruby-dev:8487] Re: [REQ] {enumerable, integer, range}.rand まつもと ゆきひろです In message "[ruby-dev:8476] Re: [REQ] {enumerable, integer, range}.rand" on 99/12/01, Kazunori NISHI writes: |はい、そうです。randomize/shuffle はどうでもいいです(失礼)。ていうか、 |どの程度の randomize にするかが難しそうなので。 そういうのはありますね。 |これなんですが、私は「それなりに利用価値があって、機能と名前が一致した |メソッドは、できるだけ組み込みで定義して欲しい」派です。 私もそんなに違いません(と思います)。 |逆に、まつもとさんは「組み込みの定義は少ない方がよい」と考えられ |ている気がするのですが、もしそうであれば、その理由は何なのでしょうか? というのは多分誤解です。ただ、私は * 今回rand/randomという名前が適切だと思ってない(機能と名前 が一致していると思わない) * 自分が十分納得してない名前のメソッドを導入すると後でいろ いろもめたり、悩んだりする という理由からやや保守的になりがちなのですよ。 |%w(説得できる? 説得できない? 無理っぽい?).random | |と書きたい衝動にかられないでしょうか?それとも、あくまでも、毎回定義す |る、もしくは一度テンポラリ変数の配列を用意して、size を添字にして、、、 名前がすべての障害です。:-) |> rand(Numeric/Range)はともかく、rand(Enumerable)ってどんな挙 |> 動をするんですか? | |これは先程述べた「Set と誤解」があるので、正しくは rand(Array) の事で、 |「その要素の中からランダムに1つの要素を取り出す」を意図していました。 | |ていうか、「rand」=「ランダムに生成する」もひょっとして思い込みですか? |こう思っていたので、rand(Array)/Array#rand も共に自然だったのですが。 現状のrand(max)は「maxまでの範囲内の乱数を発生する」という以 上の意味を持ってません。引数や戻り値の意味を変更するならば、 それはそれで良いのですが、それならば統一的な意味が必要だと思 います。 まつもと ゆきひろ /:|)