Proc
はブロックをコンテキスト(ローカル変数やス
タックフレーム)とともにオブジェクト化した手続きオブジェクト
です.Proc
はローカル変数のスコープを導入しない
ことを除いて名前のない関数のように使えます(ダイナミックロー
カル変数はProc
ローカルの変数として使えます).
Proc
を生成したメソッドからリターンしてしまった後は
Proc
からのreturn
,
break
, next
, redo
,
retry
は例外を発生させます.
Object
new
ブロックをコンテキストとともにオブジェクト化します.
self[arg...]
call(arg...)
手続きオブジェクトを実行します.引数はブロックの引数にそのま ま(多重代入のルールに従い)代入されます.