From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-11-19T21:07:32+09:00 Subject: [ruby-dev:872] Re: [Req] Proc.new けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :00867 ] the message: "[ruby-dev:867] Re: [Req] Proc.new ", on Nov/19 18:22(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes: >まつもと ゆきひろです` >|> |(3)今見つけました。バグかも。 > >|> おそらくは1引数の時の挙動をイテレータよりも関数に合わ >|> せたかったのではないかと推測します.この手当をしないと >|> bar.call(1)でxが[1]になってしまいますから. >| >|あ、そうか。 >| >|> でも,foo.callは [] の方が嬉しいよなあ.これまたどうしよう. >| >|そうですよね。 > >おそらく > > foo = Proc.new { |*x| p x } > foo.call() #=> [] > foo.call(1) #=> [1] > foo.call(2,3) #=> [2,3] > > bar = Proc.new { |x| p x } > bar.call() #=> nil > bar.call(25) #=> 25 > bar.call(25, 26)#=> [25,26] > > baz = Proc.new { |x,y| p [x,y] } > baz.call() #=>[nil,nil] > baz.call(25) #=>[25,nil] > baz.call(25, 26)#=>[25,26] > >となるのが望ましいと思うんですけど,どうでしょう? もう1つ気になるのが: baz = Proc.new { |x,y| p [x,y] } baz.call(25, 26, 27) の時なんですが... bar = Proc.new { |x| p x } bar.call() #=> nil bar.call(25, 26)#=> [25,26] も変に許すような仕様にしないで, エラーにした方がいいんじゃないですか? 不定個の引数を受けたければ *xが使えるのですし... __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---