From: "Shota Fukumori (sora_h)" Date: 2011-01-03T22:05:07+09:00 Subject: [ruby-dev:42933] Re: Proc#callの別名の提案 関数オブジェクトってなんですか? あと、&はすでに使われていますよ。 http://rurema.clear-code.com/1.9.2/doc/spec=2fcall.html#block irb(main):001:0> def a; yield; end irb(main):002:0> def b(&block); block.call; end irb(main):003:0> a { 1 } #=> 1 irb(main):004:0> b { 1 } #=> 1 irb(main):005:0> a(&(->{2})) #=> 2 ブロックが必要なメソッドで、ブロックのかわりに最後の引数にProcやLambdaオブジェクトの手前に&をつけると それがブロックとして処理されます。 あとは同じメソッド側の引数リストに&をつけるとProcとしてブロックを受けとることができます。 2011/1/3 : > これは無理だと思うのですが…何も指定しないで関数呼び出しにして、「&」をつけると関数オブジェクトになるようにはならないでしょうか。 > これ以上アイデアは出そうにないので、これが無理なら提案を取り下げたいと思います。 というよりProc#call以外にProc#[]があります。それじゃだめなんですか? まえからおもっていたんですけれど -- Shota Fukumori a.k.a. @sora_h - http://codnote.net/