From: Shin-ichiro HARA Date: 1997-11-19T18:51:36+09:00 Subject: [ruby-dev:869] Re: [Req] Proc.new 原です。 > まつもと ゆきひろです > |bar = proc(:foo) > |bar() > | > |と答えられたらかっこいいかなと思ったわけですよ。 > > まあ,その気持ちは分かるんですけど,Rubyのモデルではやっぱり > メソッドはオブジェクトではないので,別のやり方の方が他との整 > 合性からも望ましいわけです.たぶん,これができるようになると > こんどは「foo.barをオブジェクト化できる」という話が出て,泥 > 沼化してしまうのではないでしょうか? メソッドをオブジェクト > 化するにしても別の方法を考えた方が良いと思います. うーむ。そうかもしれないです。 > おそらく > > 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] > > となるのが望ましいと思うんですけど,どうでしょう? |x| の時はちょっと注意がいるけど、これでいいんじゃないで しょうか。