しげひろです.

> Date: Thu, 5 Feb 98 11:55:35 +0900
> Subject: [ruby-list:6262] Re: i++
> Message-Id: <199802050255.LAA25496 / picachu.netlab.co.jp>

> Enumerableならsizeを使うってのはどうでしょう.
> 
>         p File.open(path).size
> 
> でファイルの行数がとれます.

ええとですね,
ファイルだったら, tutorial のように

   while file.gets

とかすれば良いし, 最初から大きさが分かっている場合は, 特に気にしていま
せん.

例えば, あるアルゴリズムのプログラムを試作して, 計算複雑度の評価をしよ
うとすると, ある箇所を何度通ったか知りたくなるわけです. そういう時は

   if condition then counter.1増やす

とかいったことをしないと仕方がないかな, と.

 ----

> Date: Thu, 5 Feb 98 16:19:16 +0900
> Subject: [ruby-list:6282] Re: i++
> Message-Id: <199802050719.QAA00202 / picachu.netlab.co.jp>

> 原さんのメールの後,結構真剣に考えてみたんですが,Rubyのイテ
> レータの場合『「イテレータが何回繰り返したか」を覚えておくべ
> きオブジェクトが存在しない』という事実に気が付きました.

ですが, 「イテレータが何回繰り返したか」という情報は, 本来イテレータが
備えている性質で, イテレータとともに実装される * べき * なのでしょうか?

オブジェクト指向的に考えると, ここで用意されるべきは

  カウンタークラス ??

のようなものだと思います.
これがあれば, ++ の用途はほとんどケアできるのではないかと...
(ちなみに, 皆様が ++ をどういう目的で使っているのか調べるというのは面
 白そう...)

例えば,

- incr とかいうメソッドでカウントしたり,
- per_times(10) とかいうメソッドで, カウントして 10 回ごとに TRUE を返
  したり...

まあ, そんなものまで組み込みクラスにするのは ?? ですし, 自分で作れば良
いのですが.
でも, (自分で言っておいて ナン ですが) 作るぐらいなら, i += 1 かなあ (^^;;;

> 外部
> イテレータでしたら,カーソルオブジェクトに聞けば良いんでしょ
> うけど.

ところで, これ↑は無いんでしょうか. (実は, 欲しかったりする.)

----
重弘裕二
阪大情報処理教育センター (sigehiro / rd.ecip.osaka-u.ac.jp)
阪大工情報システム白川研 (sigehiro / ise.eng.osaka-u.ac.jp)