立石です。

たとえば

a = Array.new(10)
for n in 0..10
  a[n] = proc{n}
end

とすると a[1].call では 10 が返ってきます。
これはwhileなどでも同様です。

現在書いているプログラムでは a[1].call で
1 が返ってきて欲しいので、

a = Array.new(10)
for n in 0..10
  proc{
    nn = n
    a[n] = proc{nn}
  }.call
end

というようなことをしていますが、何か他にスマート
な方法があれば教えて下さい。

			Takaaki Tateishi <ttate / jaist.ac.jp>