言葉の定義については、実行時か実行前程度でいいんじゃない?それはともかく

>>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
有効な利用方法は、クロージャ、遅延評価。