前橋です。

From: matz / netlab.co.jp (Yukihiro Matsumoto)
Subject: [ruby-list:6068] Re: Ruby 連載 第 3 回
Date: Wed, 28 Jan 98 19:26:12 +0900

> |ここで質問なのですが、上記のイテレータブロックは一体いつどこで評価され
> |るのでしょうか。tk.rb をみてもよくわかりませんでした。
> 
> 実際にはtkutilモジュールで定義されているTkKernel.newで評価し
> ています.これはイテレータブロックを評価する間selfの値を差し
> 替えてしまうという邪悪なイテレータです.

tkutil.c の

    if (iterator_p()) rb_yield_0(obj, obj);

のあたりですね。そういえば tk.rb だけでなく C のコードもあったのでした。

> # だから,あんまり勧めないわけ.

でもパラメータに書き並べるより見やすい/書きやすい気がします。