Tanaka Akira さんは書きました:
> foo には引数がないので、retry の奇妙な点であるところの実引数
> の評価から再開される、という部分が使われていませんが、実引数
> が再評価されることは不要ですか?
人工的な例ですが、

「取得するたびに値の変わっていくローカル変数(big)を引数にとり、一秒間隔
でその変数を使って
なんかするメソッド(foo)をつくりたいとする。ただしメソッド定義内部(と実
引数部)に直接変数名bigを書き込むような
ことはしたくない。」

retryを使うとこんな感じになります。↓

big = 0
Thread.new{loop{sleep 0.7;big += 1}} #big の時間変化

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

foo(big){|n|p n} #=>1,2,4,5,...