[#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
[#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
あとうです。
[#39889] dRuby: 急に遅くなる — ちば けいすけ <chowder@...>
ちばです。
7 messages
2004/07/21
[#39908] htreeの高速化 — MoonWolf <moonwolf@...>
MoonWolfです。
6 messages
2004/07/23
[ruby-list:39871] Re: イテレータとfor文
From:
OOTANI TAKASHI <otn@...5.so-net.ne.jp>
Date:
2004-07-20 18:30:04 UTC
List:
ruby-list #39871
大谷です。
From: Takahiro Kambe <taca@back-street.net>
Subject: [ruby-list:39869] Re: イテレータとfor文
Date: Wed, 21 Jul 2004 01:40:32 +0900
> > のようなものはイテレータを使うことになりますが、
> > これはrubyを知らない人にはわかりにくい記法のように思います。
> 単に、「慣れ」のレベルの問題ではないでしょうか。そもそも、イテレータと
> いう単語を出した時点で、Cやawkのような言語からは違う場面に進んでいると
> 思います。
まあ、それはそうなんですけど。
> > と書けると、lineが制御変数であることが(A)よりわかりやすいと思います。
> > foo.bar do |x,y| .... end は
> > for x,y in foo.bar do .... end
> ブロックとして、{ |x,y| ... } をProcオブジェクトにして利用するといった
> 場合につなげるのが困難ではないでしょうか。
procは無理だなと思いました。言葉が足りなかったかもしれませんが、
イテレータの記法を「変える」という話ではなくて、
リファレンスにもある通り、
(式).each { |x| hogehoge } は変数の有効範囲の問題を除けば
for x in 式 do hogehoge end と書いてもいいわけで、
それと同じ意味で、一般の
foo.bar { |x| hegohego } も
for x in foo.bar do hegohego end と書いてもいいように出来ないかということです。
> > ・rubyを知らない人にもわかりやすくというのが考えとして良いのかどうか
> 慣れないうちは、無理してイテレータを使わないとうい選択肢もあるわけです
> し、逆にRubyの理解の足を引っ張ることにはならないでしょうか。
Rubyユーザ以外の人(Rubyを書くつもりの無い人)にもわかりやすくという意味です。
せっかく可読性が優れているわけですから。
現状では、Rubyユーザ以外の人に渡すものでは最初のメールに書いた例のように
冗長なのを我慢して、普通の言語風の記法だけ使うというのが正しいんでしょう。
> > ・その他、変数のスコープの問題をどうするか
> 言語仕様を複雑にしてしまうだけに思えてしまいます。
機能追加ですから確かにそうですが、eachをつかったイテレータで書けるにも
かかわらず現行のfor文があるわけですし(*1)。
それともfor文は歴史的経緯で残っている盲腸なんでしょうか?
要は、
> ・rubyを知らない人にもわかりやすくというのが考えとして良いのかどうか
が問題だと思います。
*1:すべてのforはeachで書けると思っていますが間違っていたらすいません。
--
OOTANI TAKASHI <otn@rc5.so-net.ne.jp>