In message "[ruby-list:18169] self in Proc.call"
    on 99/10/31, Takashi Matsuda <matsu / arch.comp.kyutech.ac.jp> writes:
>  # ruby -e 'proc{print self}.call'
>  main
>
>selfは手続きオブジェクトのメソッド内で参照されているので, 手続きオブジェクト
>を指すべきだと思うのですが, どのように理解したらよいのでしょうか.

self に限らず、procなどに渡されるブロックの中身はその proc 
が置かれている文脈のスコープで解釈されます。

たとえば、

% ruby -e 'def foo; i = 0; yield; end;  i = 1; foo{p i}'

は 0 ではなく 1 を表示します。一方、ブロックやProcを実行する
ときに引数を渡すようにすることは出来ます。

% ruby -e 'def foo; i = 0; yield i; end;  i = 1; foo{|i| p i}'

だと、0 を表示します。

>なぜ, 手続きオブジェクトそのものを得たいのかというと, glutのTimerコールバック
>の設定で次のようにしたいからです.

glut は使ってないのでどう書くとスマートなのか分かりません。

-- gotoken