[#39804] CGIでのリダイレクションの書き方 — Yoichiro Takehora <yoichiro@...>
こんにちは、竹洞です。
7 messages
2004/07/02
[#39811] keyword-argument-like argument passing via Hash — NISHIMATSU Takeshi <t-nissie@...>
西松と申します.
4 messages
2004/07/02
[#39814] Socket:IPヘッダの編集方法 — takeshi honda <moecho21@...>
本田と申します。
6 messages
2004/07/02
[#39819] [ANN] Ruby-GetText-Package-0.6.0 — Masao Mutoh <mutoh@...>
むとうです。
4 messages
2004/07/04
[#39822] (要素がString, Fixnum 以外の)配列の集合演算 — Hiroshi Takagi <gollum@...>
高木といいます、よろしく。
11 messages
2004/07/05
[#39823] Re: (要素がString, Fixnum 以外の)配列の集合演算
— 卜部昌平 <s-urabe@...>
2004/07/05
mput です。
[#39824] Re: (要素がString, Fixnum 以外の)配列の集合演算
— Hiroshi Takagi <gollum@...>
2004/07/05
高木です。
[#39826] Re: (要素がString, Fixnum 以外の)配列の集合演算
— nobu.nakada@...
2004/07/06
なかだです。
[#39856] 直接関係のない配列の有無が、ある配列の値に影響する不具合 — "Hisashi Yahata" <yahatah@...>
5 messages
2004/07/17
[#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
[#39870] Re: イテレータとfor文
— Nowake <nowake@...>
2004/07/20
[#39886] Re: イテレータとfor文
— Tietew <tietew-ml-ruby-list@...>
2004/07/21
[#39891] Re: イテレータとfor文
— OOTANI TAKASHI <otn@...5.so-net.ne.jp>
2004/07/21
大谷です。
[#39910] Re: イテレータとfor文
— Atoh <atoh@...7.jp>
2004/07/23
あとうです。
[#39911] Re: イテレータとfor文
— OOTANI TAKASHI <otn@...5.so-net.ne.jp>
2004/07/23
大谷です。
[#39889] dRuby: 急に遅くなる — ちば けいすけ <chowder@...>
ちばです。
7 messages
2004/07/21
[#39908] htreeの高速化 — MoonWolf <moonwolf@...>
MoonWolfです。
6 messages
2004/07/23
[ruby-list:39923] Re: イテレータとfor文
From:
OOTANI TAKASHI <otn@...5.so-net.ne.jp>
Date:
2004-07-24 14:33:18 UTC
List:
ruby-list #39923
大谷です。
From: Atoh <atoh@inter7.jp>
Subject: [ruby-list:39920] Re: イテレータとfor文
Date: Sat, 24 Jul 2004 19:45:25 +0900
> あとうです。
>
> From: Tietew <tietew-ml-ruby-list@tietew.net>
> Subject: [ruby-list:39886] Re: イテレータとfor文
> > なお,enumerator.so を使うと以下のように書けます。
これは今後の勉強課題として。
> あと、最初に書いた IO.readlines の例はちょっと不適切だったかもしれません。
> for line in File.open(filename, "r") do ... end
> の方がファイル全体を一気に読み込まないのでいいようです。
> # IO が Enumerable をインクルードしているなんて知らなかった。勉強不足だ…
これは全然気が付きませんでした。
File.open を使う時は、最初のメールに書いたような、
> file=open("filename")
> begin
> while line=file.gets
> puts line
> end
> ensure
> file.close
> end
と、までは書きませんが、
File.open("filename") do |file|
while line=file.gets
puts line
end
end
と、他の言語風な読み取りループにしてました。
each が使えて forで書けるんですね。
リファレンスを引くような見方しかしてないと、多言語からの連想でgetsや
readlineを探して見つけた時点で満足してしまっていたんだと思います。
(特に書く時putsを使うので、ついgetsに頭が行く)
あとうさんが前回かかれた
> Enumerable なオブジェクトをどうにか生成するのが良いのではないでしょうか。
も繰り返し処理の時には気に留めたいと思います。
> 最後に、本題と全然関係ありませんが。
>
> From: takumi-ruby@soloot.jp
> Subject: [ruby-list:39919] サンプル重要
> > 抽象化の苦手な方が、先にこういう具体例の情報を出さずに
> > 議論を進めようとすると、常に論点がずれてしまい振り回されるという
> > 実例ですね。
>
> いきなり「抽象化の苦手な方」と言い切ってしまうのはちょっと…
> もう少しソフトな言い方をしていただけるとありがたいです。
> 「具体例は議論を円滑に進めることが多いので、今後は早めに」とか。
> 不特定多数の方の読まれる ML では特に、言葉は大事だと思うのです。
> 揚げ足取りみたいですみません。自分が言われたら嫌だなあ、と思ったので。
私個人的には、ネットニュース歴が長いこともあり、ストレートな物言いは好きです。
ただ、TA-KU-MIさんの書かれたような、「素人にもメンテナンスしやすいような
渡し方」一般論を議論するつもりは無かったです。簡単に言うと
「繰り返しについてはforをつかう記法も選択できるといいな」というレベルの
提起のつもりでした。
「相手が理解・メンテナンスしやすい」ことが前提のプログラムを書く話ではなく
「せっかくrubyは読みやすいのに、ブロック付メソッド呼び出しの記法だけは…」
というのが書きたかったことです。
まとめは、
・繰り返しでないものの話が漏れていたこと
・繰り返しならEnumerableなオブジェクトをうまく使えばforで書けることもある
・私がforで書けないと思っていたものも少なくともひとつは実は書けたこと
「そんな余計なことを考えなくても do |x,y| .... end はrubyを知らない
人にも十分わかりやすいよ」という意見は無かったかと思います。
もちろん、学ぶ気になれば慣れるのは容易というのには同意します。
以下、別の話ですが、
イテレータがブロック付メソッド呼び出しに発展したんでなくて
最初から「ブロック付メソッド呼び出し」という物があり、
その表記法を考えていたら別の形になっていたかもと思います。
--
OOTANI TAKASHI <otn@rc5.so-net.ne.jp>