From: matz@... (Yukihiro Matsumoto) Date: 1998-04-03T13:51:45+09:00 Subject: [ruby-dev:2039] Re: [Req] Binding.new まつもと ゆきひろです In message "[ruby-dev:2038] Re: [Req] Binding.new" on 98/04/03, 石塚圭樹 writes: |けいじゅ@日本ラショナルソフトウェアです. |>どーしても新しいスコープを導入する機能が欲しいんですね. | |どーしてもというわけでもないんですが, 直接的な要望としては, インタラク |ティブな言語(elispやsmalltal)では, top levelが複数あるわけですけど, |rubyでもそれを直接サポートしてくれる機能が欲しいわけです. で, それなら |Bindingが直接できても良いかと... 複数のトップレベルはインタラクティブな言語一般の機能ではない でしょう.すくなくともelispには複数のトップレベルはないよう に思います. |bindingとscopeの違いがよく分かっていないのかもしれません. binding()は |その時のscopeと変数の束縛の状態を持っているものではないんですか? bindingはある時点でのコンテキストとでも呼ぶべきもので確かに スコープも持っています(他にも色々持っています).が,もともと の目的も実装も「ある時点での状態(コンテキスト)の切り出し」で すから,新しいコンテキストの合成というのは新しい概念になるわ けです. ですから,この場合新たに合成できる「なにか」はどのようなもの であるかを考察して,それをbindingと呼ぶならbindingに新しい定 義を与える必要があると思うわけです. bindingがスコープに似ているから,あるいはスコープを持ってい るからスコープとしての働きを追加するというのは少々乱暴な印象 があります. |一応考えてあるつもりなんですけど... 新たにスコープが作られるのは, 以下 |のパターンだけですよね? | | class Fooの中のbindingは, binding.subbinding(Foo, Foo) | class <