[#47955] るびま記事募集:FiberとかSinatra/PadrinoとかBundlerとか — Makoto Kuwata <kwa@...>

桑田といいます。るびま編集部に入りました。

17 messages 2011/04/11

[#48016] 文字列を正規表現にマッチする部分と他の部分に分割 — "5.5" <5.5@...>

5.5 です。

12 messages 2011/04/28

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

From: "NARUSE, Yui" <naruse@...>
Date: 2011-04-24 10:27:27 UTC
List: ruby-list #48012
(2011/04/24 19:15), KOSAKI Motohiro wrote:
> 2011年4月24日19:07 NARUSE, Yui <naruse@airemix.jp>:
>> (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@airemix.jp>

In This Thread