eval ってクロージャなのか
これを見て、なんとなくそうかなと思って試してみた。
y = 1 f = eval "x = y\nlambda{x += 1}" f.call # => 2 f.call # => 3 y # => 1 x # => # ~> -:6:in `<top (required)>': undefined local variable or method `x' for main:Object (NameError)
ふーん。
これを見て、なんとなくそうかなと思って試してみた。
y = 1 f = eval "x = y\nlambda{x += 1}" f.call # => 2 f.call # => 3 y # => 1 x # => # ~> -:6:in `<top (required)>': undefined local variable or method `x' for main:Object (NameError)
ふーん。