2011年4月24日

[ruby-list:48012] Re: randの挙動

(2011/04/24 19:15), KOSAKI Motohiro wrote:
> 2011年4月24日19:07 NARUSE, Yui <naruse@xxxxx>:
>> (2011/04/24 19:01), YAGUCHI Yuya wrote:
>>> 矢口と申します
>>>
>>> Kernel.#rand, Random.randとRandom#randで
>>> Rangeオブジェクトを引数に呼び出したときの挙動が異なるのですが
>>> なぜこのような挙動になっているのでしょうか?

>>
>> Kernel#rand と Random.rand は同じ物ですが、
>> Random#rand は別物だからです。
>
> そりゃ、実装の説明にしかなってないような。
> Random.rand 削るとか Kernel#randがrange受け取れりゃ対称性が増すのに
> しないのはなぜですか。という次の質問が来るに100ガバス

実装というか、同じ物か別のものかは Ruby 仕様のレイヤーですかね。
あと、「削るとか」は Random.rand じゃなくて Random#rand でしょう。

で、Random#rand が別物なのは当該 Random オブジェクトの中にある乱数生成器を用いて
生成しているためで、当然仕様的にも実装的にも別物になります。

さておき、Range の受容に関する違いにはおそらく特に理由は無いので、
Kernel#rand も Range を受け取るようにして欲しい、
などという要望を出すのもいいんじゃないでしょうか。

--
NARUSE, Yui <naruse@xxxxx>


投稿者 xml-rpc : 2011年4月24日 19:27
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/103228
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。