福間@福岡 です。

記事 <19991104053758V.ttate / jaist.ac.jp> にて、
ttate / jaist.ac.jp さんは書きました:

> 現在書いているプログラムでは a[1].call で
> 1 が返ってきて欲しいので、
> 
> a = Array.new(10)
> for n in 0..10
>   proc{
>     nn = n
>     a[n] = proc{nn}
>   }.call
> end
> 
> というようなことをしていますが、何か他にスマート
> な方法があれば教えて下さい。

for の代わりに each を使うだけでもよさそうですが、

  a = Array.new(10)
  0.upto 10 do |n|
    a[n] = proc {n}
  end

では如何でしょう。

---
 Yasuhiro Fukuma (福間 康弘) as Yasu.F @ Kitakyushu.Fukuoka.Japan
 Web site: http://www8.big.or.jp/~yasuf/
 PGP fingerprint = 17 25 8A F3 99 E5 7E 19  C0 EA 6E 03 8A C3 CE F0
 “臨界に達する可能性のあるものは、臨界に達する”