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