まつもと ゆきひろです

In message "[ruby-list:3425] eval with dynamic binding [Re: meta programming features]"
    on 97/07/24, 石塚圭樹 <keiju / bc.mbn.or.jp> writes:
|
|けいじゅ@今はフリー(^^;;;です. 
|
|これはこれで, 実現するかどうかはともかく, もうちょっと深めたいのでつき
|あって下さい.

いいですとも,でもruby-devができたらそちらに移りましょうね.

|あ. そうでした. この場合は, パラメータとして|a|しているけど, 静的ロー
|カル変数の`a'と同じものになるんですね?

そうですね.動的ローカル変数というのも実装よりの表現で言語仕
様的にはイテレータブロックの範囲内でだけ有効なただのローカル
変数です.特別な用語を使っているせいで誤解を招いているかも知
れません.

|  eval "print ARGV.inspect", a_binding, "foo"
|
|みたいな方法は可能かな? 変数名はARGVじゃない方が良いとは思いますが.

可能ですけど,やるつもりはないですね.evalはそのスコープの任
意のローカル変数にアクセスできるわけですから.

|>構造はProcと同じです.
|
|BindingはProcのスーパクラスなのかな? 

構造が同じだけで継承関係はないです.Bindingというクラスはな
くて,ただのDataですし.クラスにした方が良いのかなあ.

|通常のProcは現在のバインディングを引き継ぎますが, 明示的にバインディン
|グを指定して, かつ, 動的ローカル変数とその値の設定が無理なくできれば求
|めるものができそうな.

すでに述べましたが,動的ローカル変数ってのは言語仕様上はスコー
プが限定されているだけでただのローカル変数なので,こういうの
には向かないと思います.
                                まつもと ゆきひろ /:|)