[#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:39868] イテレータとfor文
From:
OOTANI TAKASHI <otn@...5.so-net.ne.jp>
Date:
2004-07-20 16:14:37 UTC
List:
ruby-list #39868
大谷と申します。
思いつきレベルなので、もしかしたら突拍子も無いことかもしれないんですが、
ちょっと思ったことを書きます。ruby暦1年くらいです。
ときどき、同僚から「こういうことをしたいんだけど」と言われて
2-30行程度のスクリプトを書いてあげることがあります。
相手はruby言語を知らないわけですが、「まあ、見れば変えるべき所は
大体わかるだろうから後は好きに直して」と渡すことが出来ます。
相手に何らかのプログラミング言語と正規表現の知識があれば大丈夫な
場合が多いです。それだけrubyは可読性が高いということだと思います。
ただちょっと、ひっかかるのがイテレータの書法です。
単なるeachのようにforで書ける時はforで書けば読めると思うのですが、
IO.foreach("filename") do |line| #(A)
puts line #(A)
end #(A)
のようなものはイテレータを使うことになりますが、
これはrubyを知らない人にはわかりにくい記法のように思います。
…これくらい簡単ならわかるでしょうけど。イテレータ一般と思ってください。
まあ、
file=open("filename")
begin
while line=file.gets
puts line
end
ensure
file.close
end
とか普通の言語風に書けば、読めるとは思うのですが、どうせなら(A)が
for line in IO.foreach("filename") do
puts line
end
と書けると、lineが制御変数であることが(A)よりわかりやすいと思います。
foo.bar do |x,y| .... end は
for x,y in foo.bar do .... end
・rubyを知らない人にもわかりやすくというのが考えとして良いのかどうか
・既存のforの機能と不整合は無いか
・その他、変数のスコープの問題をどうするか
等の問題はあるかと思いますが、いかがでしょうか?
ちょっとサンプルが悪かったような気もしますが、
言いたい事はわかると思うのでそのままにします。
{ |x| ... }の記法はlispの(lambda (x) .... )から来てるのでしょうか?
それならそれで(lambda記法を知ってる人には)わかりやすいと思いますが。
--
OOTANI TAKASHI <otn@rc5.so-net.ne.jp>