Rubyで(ブロック付きのメソッドを)関数合成をするには? その2

ブロックの合成.1.9なら
Proc.new{|*args,&block| ... } のようにProc.newのブロックで&blockを引数に取れるのでスマートに書ける.なるほど.

というわけで1.9をコンパイルして実験.

p = Proc.new{|*args,&block| method(:foo).call{ method(:bar).call &block }}
p.call { ... }

というのを

p = method(:foo) << method(:bar)
p.call { ... }

と書ける.この程度なら全然OKだなぁ……と思って1.8.4でもどうにかならないか試してみるも,
Methodオブジェクトから別のMethodオブジェクトが作れない(またはProcに&blockが渡せない)仕様に挫折.

とりあえず1.8では(泥臭く)配列にProcオブジェクト積んでいくことにします……orz