[#39863] forループの速度 — Masahiro Sato <msato@...>

15 messages 2004/07/20

[#39868] イテレータとfor文 — OOTANI TAKASHI <otn@...5.so-net.ne.jp>

大谷と申します。

31 messages 2004/07/20
[#39886] Re: イテレータとfor文 — Tietew <tietew-ml-ruby-list@...> 2004/07/21

[ruby-list:39918] Re: イテレータとfor文

From: OOTANI TAKASHI <otn@...5.so-net.ne.jp>
Date: 2004-07-24 05:23:24 UTC
List: ruby-list #39918
大谷です。
最後じゃなかった。

From: Nowake <nowake@fiercewinds.net>
Subject: [ruby-list:39915] Re: イテレータとfor文
Date: Sat, 24 Jul 2004 12:33:36 +0900
> 野分です。
> > という話なので、私は相手の都合でなく自分の都合でrubyで書きたいです。
> > (もちろん、私が別の言語で書きたくて相手も知っていればそうしますが)
SKIP
> 職場やグループで使用する場合は、作る時の工数だけではなく改造/保守も含め
> ての工数を考慮する必要があるので、あえて誰も使用するつもりのないRubyを選
> 択するのは間違っているかと思います(総合的には負担増になりますからね)。
> また、使い捨てに近いスクリプトだから作成時の工数減のためにRubyで書くとい
> うのならば、大谷さんが述べているように運用で回避するべき問題でしょう。

「あげる」「もらう」と書いたように、いわゆる業務のプログラムではないです。
というか「いわゆる業務」のプログラムを書くことはそもそもないです。

「いわゆる業務」のプログラムを作る部署は処理方式から、開発ツール、部品、
ドキュメント、ネーミングルール、コーディングルールとかちゃんとやってます。

> Rubyのコンセプトを曲げてまで対応するような話では無いかと思います。
> #あとうさんが[ruby-list:39872] で指摘している IO.readlines の使用は検討しました?

IO.foreachは自分が良く使うので今回たまたま例として挙げました。
fj.unix.shells や fj.comp.lang.perl とかで、perlでファイル全部を読み込むと
sedやawkで1行ずつ処理するより、ずっとエレガントに書ける例を良く見かけるのですが、
大きさもわからないファイルを最初に全部読み込む発想は自分ではなかなか出ません。

今手元にある「あげた」実例は、「日本語で無いメールだけをPOPサーバーから
削除してファイルに落とす」というやつですが、
正規表現がわかれば「日本語で無い」を「特定の差出人の」とかに修正できます。

pop.each_mail do |m| .... end というのがありました。
これは確かに for m in pop.mails do .... end と書けますね。
大きなデータを読み込むわけでもなし。

どうもリファレンスの前半の使用例だけを見て書いたようです。使用例にも、 
pop.each_mail do |m|   # or "pop.mails.each ..." と一応書いてありましたが。
使用例はrubyらしくなるように「ブロック付メソッド呼び出し」なのは当然か。

-- 
OOTANI TAKASHI <otn@rc5.so-net.ne.jp>


In This Thread