lambdaでyield

なんとなく、できないかなぁと思って、やってみたらできなかった。

irb(main):001:0> hoge =lambda{ yield(10) }
=> #<Proc:0x004dcdbc@(irb):1>

irb(main):002:0> hoge.call{|v| puts v }
LocalJumpError: no block given
        from (irb):1
        from (irb):3:in `call'
        from (irb):3

lambdaで定義しているときに、ブロックが渡されていないといけないみたいか。でも、Rubyは2個とかブロック渡せないしなぁ。Procでわたすようにしないとできないかぁ。

うーん。まぁ、使えなくて問題があることは無いんだけど。