Tanaka Akira さんは書きました:
> それなら retry を使わなくてもブロックの中で big を参照すれば
> いいのではありませんか?
>   
ああそのとうりですね、例になってない。それじゃあ事前に(変数名がbigだと決
まるよりも前に)procオブジェクトを
作成して、それを用いたい状況だったらどうですか?

it = proc{|n| p n }
big = 0
Thread.new{loop{sleep 0.7;big += 1}}

def foo(n)
sleep(1)
yield n
retry
end

foo(big,&it)

クラス化してインスタンス変数を使ったり、proc作成前にbig=0をはさんだりす
ればいけますが、
そういうのをしたくない状況ってことで:-)

ruby 1.8.6 (2007-07-28 patchlevel 5000) [i386-mswin32_80]