From: Wakou Aoyama Date: 1999-03-23T13:46:09+09:00 Subject: [ruby-list:13089] Re: alternative name of iterator 青山です。 {} と do .. end の差はこれだけでしょうか? > foobar a, b do .. end # foobar がイテレータとして呼び出されます > foobar a, b { .. } # b がイテレータとして呼び出されます もし差がこれだけであり、foo = bar a, b do .. end の実装が困難なようで あれば、思い切って {} と do .. end を同じ優先順位にしても良いように思 いますが、いかがでしょうか? そのような変更をした場合、 foobar a, b do .. end を foobar(a, b) do .. end と書かなければならないという点で互換性が無くなりますが、lib/* sample/* 以下では foobar a, b do .. end という記述はみあたらないようです。 むしろ、 cal.rb: a.scan(/./no) do |c| rbc.rb: @OP.def_rules(" ", "\t", "\f", "\r", "\13") do rbc.rb: @OP.def_rule("#") do 以下 rbc.rb では多数 sieve.rb: (i*i).step(max, i) do |j| base64.rb: encode64(bin).scan(/.{1,#{len}}/o) do date2.rb: @jd.downto(min.jd) do |jd| date2.rb: @jd.upto(max.jd) do |jd| ftplib.rb: retrbinary("RETR " + remotefile, blocksize) do |data| ftplib.rb: storbinary("STOR " + remotefile, f, blocksize) do |data| ftplib.rb: retrlines(cmd) do |line| jcode.rb: self.scan(/(.|\n)-(.|\n)|(.|\n)/) do |r| jcode.rb: self.gsub!(/(.|\n)/) do |c| 以下 jcode.rb でも多数 matrix.rb: 0.upto(row_size - 1) do matrix.rb でも多数 mkmf.rb: Find.find("lib") do |f| ping.rb: timeout(timeout) do pstore.rb: File::open(@filename, "r") do |file| sync.rb: ObjectSpace.define_finalizer(obj) do |id| 以下略 と、foobar(a, b) do .. end という書き方は多数使われています。 これらの事から、foobar(a, b) do .. end は十分になじみがある書き方であ り、それを代入が必要な場合に {} に書き換えなければならないというのは十 分に不便な事であると思われますが、いかがでしょうか。 -- 青山 和光 Wakou Aoyama