立石です。 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>