けいじゅ@日本ラショナルです.

In [ruby-list :03619 ] the message: "[ruby-list:3619] Re: [Request]
File.readlines ", on Aug/08 14:45(JST) matz / netlab.co.jp (Yukihiro
Matsumoto) writes:

>|# でも, なんでIOなんだ?? Fileで良いような... 
>
>多分
>  IO.foreach("|ps uax")
>なんてこともあり得るからでは?

おお. そうか. では, readlinesもIO.readlinesになりますね. って, 下では
すでにそうなっていた...

>要求をまとめると
>
>  (a) IO.foreachにsep引数を追加したい
>  (b) IO.readlines(相当)が欲しい
>  (c) IO.foreachがイテレータとして呼ばれていない時配列を返す
>      のはどうだろうか
>
>ですよね.

>aはあまり主張されていないようですが,どうします?

この辺りのメソッドは機能を合わせた方がいいのでは? と思いますので, あっ
た方がいいんじゃないでしょうか?

>bはあると便利なのは認めます.無くてはならないと言うほどでは
>ないにしても.

まあ. それもそうなんですが...

>cはforeachという名前はその挙動にふさわしくないように感じます.

そうですね. もしやるんだったら, 逆に, IO.readlinesに統合した方が良いと
思いますね. 

>ということで,a,bについてはもうすこし論を補強して欲しいです

IO#readlinesは, stdioなどすでにopenしているものでは当然便利ですが, ま
だopenしていないファイルに対しては, 以下のように毎回プログラムしないと
行けないので, それほど便利ではないと思うんですよ. 

begin
  file = File.open(..)
  lines = file.readlines()
ensure
  file.close()
end

それに, readlinesを使う場合は, fileに対しての操作はreadlines以外実行し
ない, つまり, 上記のようなコーディングが大半になると思います. 

というわけで, すでにopenされているfileに対してのreadlinesと同等の便利
さを得るために, IO#readlinesはいかがでしょう?

>し,cに関しては却下する方向で考えています.

cはどうしてでしょうか? イテレータになったり配列を返したりするのは好き
でない? それとも名前の問題?

__
..........................................石塚 圭樹@日本ラショナル...
----------------------------------->> e-mail: keiju / bc.mbn.or.jp <<---