立石です。

Date: Thu, 4 Nov 1999 11:55:17 +0900
From: Shin-ichiro Hara <sinara / blade.nagaokaut.ac.jp>
sinara> 原です。
sinara> |
sinara> |青山です。
sinara> |$ ruby -e '
sinara> |a = proc{|n| proc{ if (0..10) === n then n else nil end } }
sinara> |p a[1].call
sinara> |p a[2].call
sinara> |p a[20].call
sinara> |'
sinara> |1
sinara> |2
sinara> |nil

そうですね。それでも動作はするのですが
オブジェクトをいっぱい作りたい時に、

class Foo
  def initialize(callback)
    @callback = callback
  end
  .......
end

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

のようなことをしたかったので、残念ながらこの方法では
a[x]のたびにFooObjのオブジェクトがつくられてしまいます。

sinara>   a = (0..10).collect{|nn| proc{ nn } }
sinara>   p a[1].call
sinara>   p a[2].call

こっちだといけますね。

			Takaaki Tateishi <ttate / jaist.ac.jp>