From: matz@... (Yukihiro Matsumoto) Date: 1997-07-26T09:36:28+09:00 Subject: [ruby-list:3486] Re: eval with dynamic binding [Re: meta programming features] まつもと ゆきひろです In message "[ruby-list:3425] eval with dynamic binding [Re: meta programming features]" on 97/07/24, 石塚圭樹 writes: | |けいじゅ@今はフリー(^^;;;です. | |これはこれで, 実現するかどうかはともかく, もうちょっと深めたいのでつき |あって下さい. いいですとも,でもruby-devができたらそちらに移りましょうね. |あ. そうでした. この場合は, パラメータとして|a|しているけど, 静的ロー |カル変数の`a'と同じものになるんですね? そうですね.動的ローカル変数というのも実装よりの表現で言語仕 様的にはイテレータブロックの範囲内でだけ有効なただのローカル 変数です.特別な用語を使っているせいで誤解を招いているかも知 れません. | eval "print ARGV.inspect", a_binding, "foo" | |みたいな方法は可能かな? 変数名はARGVじゃない方が良いとは思いますが. 可能ですけど,やるつもりはないですね.evalはそのスコープの任 意のローカル変数にアクセスできるわけですから. |>構造はProcと同じです. | |BindingはProcのスーパクラスなのかな? 構造が同じだけで継承関係はないです.Bindingというクラスはな くて,ただのDataですし.クラスにした方が良いのかなあ. |通常のProcは現在のバインディングを引き継ぎますが, 明示的にバインディン |グを指定して, かつ, 動的ローカル変数とその値の設定が無理なくできれば求 |めるものができそうな. すでに述べましたが,動的ローカル変数ってのは言語仕様上はスコー プが限定されているだけでただのローカル変数なので,こういうの には向かないと思います. まつもと ゆきひろ /:|)