[#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:39869] Re: イテレータとfor文

From: Takahiro Kambe <taca@...>
Date: 2004-07-20 16:40:32 UTC
List: ruby-list #39869
In message <20040720235622.FBEA.OTN@rc5.so-net.ne.jp>
	on Wed, 21 Jul 2004 01:14:37 +0900,
	OOTANI TAKASHI <otn@rc5.so-net.ne.jp> wrote:
> ただちょっと、ひっかかるのがイテレータの書法です。
> 単なるeachのようにforで書ける時はforで書けば読めると思うのですが、
> IO.foreach("filename") do |line|  #(A)
>   puts line                       #(A)
> end                               #(A)
> のようなものはイテレータを使うことになりますが、
> これはrubyを知らない人にはわかりにくい記法のように思います。
単に、「慣れ」のレベルの問題ではないでしょうか。そもそも、イテレータと
いう単語を出した時点で、Cやawkのような言語からは違う場面に進んでいると
思います。

> と書けると、lineが制御変数であることが(A)よりわかりやすいと思います。
> foo.bar do |x,y| .... end は
> for x,y in foo.bar do .... end
ブロックとして、{ |x,y| ... } をProcオブジェクトにして利用するといった
場合につなげるのが困難ではないでしょうか。

> ・rubyを知らない人にもわかりやすくというのが考えとして良いのかどうか
慣れないうちは、無理してイテレータを使わないとうい選択肢もあるわけです
し、逆にRubyの理解の足を引っ張ることにはならないでしょうか。

> ・既存のforの機能と不整合は無いか
これはわかりませんが、

> ・その他、変数のスコープの問題をどうするか
言語仕様を複雑にしてしまうだけに思えてしまいます。

-- 
神戸 隆博 / Takahiro Kambe

In This Thread