Rubyについて Part 15
■ このスレッドは過去ログ倉庫に格納されています
0459デフォルトの名無しさん
05/03/07 16:16:55>>451
mをprocにすると結果が変わってくる。
メソッドないのブロックではスコープが隔離されてるだけなので
これを以て動的/静的スコープと判断するのは不適切なのでは?
>>447の場合、aの値が伝搬されてないだけとも言える。
a = 10
l = lambda{|b| eval "a", b}
def m(a,l)
l.call binding
end
m 30, l
もっと単純に
a = 10
l = lambda { a }
a = 20
l.call
> でも、現状で動的スコープ言語が今ではほとんどないということからして、
Pythonも動的スコープ, rubyも動的スコープだと思ってたんだけど?
静的だとしたら上のコードの実行結果と矛盾しませんか?
>>449
有効な利用方法は、クロージャ、遅延評価。
■ このスレッドは過去ログ倉庫に格納されています