From: Toyofuku Date: 2001-02-07T02:18:22+09:00 Subject: [ruby-dev:12188] block argument 豊福です。 ブロックの実行を書くとき、私は def foo(...); ...; yield(...); ... より def foo(..., &blk); ...; blk.call(...); ... の方が対象のブロックを explicit に意識できて好き なんですが、後者は前者に比べて一度 proc化される 処理が入るのが残念です。 そこでブロックを proc化するの少し遅らせて call されたときは yield と同様の処理ですまし、それ以外 のときに初めて本格的に proc化するようにできないで しょうか。 変数かオブジェクトに未proc化の印をつけておいて Proc#call が再定義されていないことも監視しておい て blk.call のときだけ yield と同様の処理行なう ことで実現できないかと考えています。 blk がいろんな使われ方をされる可能性はもちろん ありますが現実的には blk.call のパターンさえ最適 化できればよいと思います。 --- 豊福 toyofuku@juice.or.jp