[#8530] Enumerable and rand — Koretsugu Daigoro <tmmcross@...>

これつぐです。

21 messages 1999/12/05
[#8534] Re: Enumerable and rand — matz@... (Yukihiro Matsumoto) 1999/12/06

まつもと ゆきひろです

[#8581] Re: [ruby-list:19228] Ruby 1.4.3 — Katsuyuki Komatsu <komatsu@...>

小松です。

19 messages 1999/12/07
[#8592] Re: [ruby-list:19228] Ruby 1.4.3 — matz@... (Yukihiro Matsumoto) 1999/12/07

まつもと ゆきひろです

[#8645] urllib and httplib — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

47 messages 1999/12/14
[#8646] Re: urllib and httplib — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/12/14

なひです.

[#8653] Re: urllib and httplib — matz@... (Yukihiro Matsumoto) 1999/12/14

まつもと ゆきひろです

[#8656] Re: urllib and httplib — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/12/15

なひです.

[#8659] Re: urllib and httplib — Wakou Aoyama <wakou@...> 1999/12/15

青山です。

[#8685] Re: urllib and httplib — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/12/21

なひです.

[#8687] Re: urllib and httplib — TAKAHASHI Masayoshi <maki@...> 1999/12/21

高橋征義です。

[#8690] Re: urllib and httplib — matz@... (Yukihiro Matsumoto) 1999/12/21

まつもと ゆきひろです

[#8717] Re: urllib and httplib — TAKAHASHI Masayoshi <maki@...> 1999/12/24

高橋征義です。

[#8963] Re: urllib and httplib — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/01/19

なひです.

[#8650] [PATCH] Ruby/Tk — Koji Arai <JCA02266@...>

新井です。

20 messages 1999/12/14
[#8651] Re: [PATCH] Ruby/Tk — Koji Arai <JCA02266@...> 1999/12/14

新井です。

[#8692] [win] dir name — KANEKO Naoshi <wbs01621@...>

金子です。

22 messages 1999/12/21
[#8695] Re: [win] dir name — Koji Oda <oda@...1.qnes.nec.co.jp> 1999/12/22

小田@QNES です。

[#8741] Re: [ruby-list:19945] Re: array + empty string — Wakou Aoyama <wakou@...>

青山です。

18 messages 1999/12/27
[#8743] Re: [ruby-list:19945] Re: array + empty string — matz@... (Yukihiro Matsumoto) 1999/12/28

まつもと ゆきひろです

[#8742] [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Kazunori NISHI <kazunori@...>

西@九大です。

64 messages 1999/12/27
[#8744] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — matz@... (Yukihiro Matsumoto) 1999/12/28

まつもと ゆきひろです

[#8748] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Kazunori NISHI <kazunori@...> 1999/12/28

西@九大です。

[#8751] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — matz@... (Yukihiro Matsumoto) 1999/12/28

まつもと ゆきひろです

[#8767] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Kazunori NISHI <kazunori@...> 1999/12/29

西@九大です。

[#8777] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — matz@... (Yukihiro Matsumoto) 1999/12/30

まつもと ゆきひろです

[#8791] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Minero Aoki <aamine@...> 1999/12/31

あおきです。

[#8792] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — matz@... (Yukihiro Matsumoto) 1999/12/31

まつもと ゆきひろです

[#8793] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — ARIMA Yasuhiro <fit0298@...> 1999/12/31

有馬です。

[#8795] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Akinori MUSHA aka knu <knu@...> 1999/12/31

 knuです。

[#8798] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — matz@... (Yukihiro Matsumoto) 2000/01/01

まつもと ゆきひろです

[#8811] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num) — Akinori MUSHA aka knu <knu@...> 2000/01/03

 knuです。

[ruby-dev:8553] Re: Enumerable and rand

From: Koretsugu Daigoro <tmmcross@...>
Date: 1999-12-06 15:30:16 UTC
List: ruby-dev #8553
これつぐです。


[ruby-dev:8534] Re: Enumerable and rand
> まつもと ゆきひろです

> |rand(10) が rand(0..10) でも rand(1..10) でも
> |rand((0.0)..(10.0)) でもなく、rand(0..9) なのはなぜでしょう?
> |(引数「未満」の「整数」を返すのはなぜか?)
> |推測ですが、これは配列等が意識されていると思います。
> |つまりすでに要素という概念と結びついているのではないでしょうか。
> 
> これはUNIXのrand(3)がそうだからという以上の理由はありません。
> rand(3)の意図としてそういうものがある可能性はありえますよね。

私はプログラマでないので勘違いかもしれないのですが、
rand(3) は引数を取らないし、
返す値の範囲も 0 から RAND_MAX まででは?(RAND_MAX-1 ではなく)
私が聞きたかったのは引数と範囲の関係なのですが……。

> Enumerableは
> 
>   * 順序があるかないか
>   * 繰り返せるかどうか(eachが再現性があるか)
>   * 有限かどうか
> 
> のいずれにも制約がありませんから(最後のはちょっと制約してる
> かな)、randの対象には広すぎるんじゃないかなあ。特に真中のが
> ちょっとなあ。

「繰り返せるかどうか」いうのが何を指しているのかつかめていないのですが、
[ruby-dev:8488] の

> たとえば、
> 
>   f = open("/usr/dict/words")
>   f.rand
>   f.rand
> 
> としたらどうなると思いますか?
> 
>   words = open("/usr/dict/words").readlines
>   words.rand
>   words.rand
> 
> の方が良くないですか? (randという名前は別として)

とか、
[ruby-dev:8535] の

>   f = open("/usr/dict/words")
>   p random_get(f)
>   p random_get(f)
> 
> はちゃんと動かないと思うのです。

はそれを言いたかったのでしょうか。
私は「見た目」を問題にしていると思ってしまったので、
おかしな答えをしてしまったようです。

が、
それを言ったら、IO/File クラスに対する Enumerable のメソッドは、
どれも私にとっては変です。
Enumerable はむしろ再現性を強く期待していませんか?
たとえば、

f.size
f.size

とか、

f.sort
f.sort

とか……。

In This Thread