[#7300] resolver を呼ばない UDPsocket#recvfrom — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...>

あんまり ruby-dev な話でも無いのですが、ちょっとした機能拡張の提案なので、

12 messages 1999/07/12
[#7321] Re: resolver を呼ばない UDPsocket#recvfrom — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1999/07/15

From: Toshihiko SHIMOKAWA / 下川俊彦 <toshi@csce.kyushu-u.ac.jp>

[#7313] Ruby 1.3.5 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.5 is out, check out:

59 messages 1999/07/15
[#7318] Re: Ruby 1.3.5 — WATANABE Hirofumi <watanabe@...> 1999/07/15

わたなべです.

[#7326] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/15

青山です。

[#7331] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/16

まつもと ゆきひろです

[#7340] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/16

青山です。

[#7368] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/19

まつもと ゆきひろです

[#7373] Re: Ruby 1.3.5 — Shin-ichiro Hara <sinara@...> 1999/07/19

原です。

[#7374] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/19

まつもと ゆきひろです

[#7382] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/19

青山です。

[#7386] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/21

まつもと ゆきひろです

[#7388] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/21

青山です。

[#7387] [PATCH]extconf.rb, tcltklib.c, and rubytest.rb for NetBSD — Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp>

早坂@会津大学です。

10 messages 1999/07/21

[#7466] [PATCH] for djgpp — WATANABE Hirofumi <watanabe@...>

わたなべです.

21 messages 1999/07/29
[#7467] Re: [PATCH] for djgpp — Katsuyuki Komatsu <komatsu@...> 1999/07/29

小松です。

[ruby-dev:7393] Re: Ruby 1.3.5

From: matz@... (Yukihiro Matsumoto)
Date: 1999-07-21 08:57:28 UTC
List: ruby-dev #7393
まつもと ゆきひろです

In message "[ruby-dev:7392] Re: Ruby 1.3.5"
    on 99/07/21, Yukihiro Matsumoto <matz@netlab.co.jp> writes:

|それは分からないでもないですが、それなら nil を返すって仕様
|そのものがあんまし良くなくて "" が来れば EOF のような仕様に
|なっちゃいますよね。あるいは終端では常に nil か。

問題を整理しましょう。

まず第1にストリームポインタが末尾にあるとき、これを

  * EOFとみなす
  * EOFとみなさない

という点があります。原さんは「みなさない」方が単純で良いので
はないかということですね。私はこちらにはあまりこだわりはあり
ませんが、「みなす」方がstdioの設計になじむようには思います。

次にストリームポインタが末尾にある(たとえば空ファイルの先頭)
ときにread(),read(n)がなにを返すかということを考えましょう。
選択肢は

  * 空文字列("")
  * nil
  * 一度目は空文字列、2度目以降はnil

くらいでしょうか。原さんは「read()では空文字列、read(n)では
nil」のようですね。

ここで考慮すべき(と私が思う)は「EOFではnilという原則をread()
で適用しなくても良いか」という点と「read()とread(n)の挙動は
どれだけ違っていることが許容されるか」という点です。

私自身はread()はread(n)のn=∞だと考えた方が良さそうに思えて
きているので(最初からそう思ってたわけでもないですが)、read()
とread(n)の原則的な挙動はほとんど同じ方が良いと思っています。

それを適用すると「一度目は空文字列、2度目以降はnil」を共通の
挙動として採用するのが良さそうに思えます。いかが?

                                まつもと ゆきひろ /:|)

In This Thread