[#3] Re: [ruby-list:3517] Re: meta programming features — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

28 messages 1997/07/28
[#6] Re: [ruby-list:3517] Re: meta programming features — keiju@... (Keiju ISHITSUKA) 1997/07/28

けいじゅ@今はフリー(^^;;;です.

[#11] Re: [ruby-list:3517] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/29

まつもと ゆきひろです

[#14] Re: [ruby-list:3517] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/29

けいじゅ@今はフリー(^^;;;です.

[#17] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/30

まつもと ゆきひろです

[#19] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/31

けいじゅ@今はフリー(^^;;;です.

[#23] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/31

まつもと ゆきひろです

[#27] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/31

けいじゅ@今日でフリーは終り(;_;です.

[#28] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/08/01

まつもと ゆきひろです

[#31] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/08/01

けいじゅ@今日から日本ラショナルです.

[#33] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/08/01

まつもと ゆきひろです

[#35] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/08/02

けいじゅ@日本ラショナルです.

[#38] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/08/03

まつもと ゆきひろです

[ruby-dev:1] Re: [ruby-list:3486] Re: eval with dynamic binding [Re: meta programming features]

From: keiju@... (石塚圭樹 )
Date: 1997-07-28 14:51:40 UTC
List: ruby-dev #1
けいじゅ@今はフリー(^^;;;です. 

In [ruby-list :03486 ] the message: "[ruby-list:3486] Re: eval with
dynamic binding [Re: meta programming features] ", on Jul/26
09:36(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes:

>|これはこれで, 実現するかどうかはともかく, もうちょっと深めたいのでつき
>|あって下さい.
>
>いいですとも,でもruby-devができたらそちらに移りましょうね.

To: ruby-dev, Cc: ruby-listとしました. 次は, Cc外して下さい.

>|あ. そうでした. この場合は, パラメータとして|a|しているけど, 静的ロー
>|カル変数の`a'と同じものになるんですね?
>
>そうですね.動的ローカル変数というのも実装よりの表現で言語仕
>様的にはイテレータブロックの範囲内でだけ有効なただのローカル
>変数です.特別な用語を使っているせいで誤解を招いているかも知
>れません.

というか, Cでは,

{
  int foo;
  int bar;
  {
    int foo;
    bar;
  }
}

のとき, 内側のbarと外側のbarは共有されますが, fooはそうじゃないですよ
ね. そういうイメージがあったのでした.

>|  eval "print ARGV.inspect", a_binding, "foo"
>|みたいな方法は可能かな? 変数名はARGVじゃない方が良いとは思いますが.
>
>可能ですけど,やるつもりはないですね.evalはそのスコープの任
>意のローカル変数にアクセスできるわけですから.

そうですか... 

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

binding.type とすると Data になりますね. Dataって何ですか? クラスじゃ
ないですよね. 

>|通常のProcは現在のバインディングを引き継ぎますが, 明示的にバインディン
>|グを指定して, かつ, 動的ローカル変数とその値の設定が無理なくできれば求
>|めるものができそうな.
>
>すでに述べましたが,動的ローカル変数ってのは言語仕様上はスコー
>プが限定されているだけでただのローカル変数なので,こういうの
>には向かないと思います.

Proc構造体に対して動的に動的ローカル変数を追加するということもできないっ
てことですか? 例えば,

  new_binding = eval "proc{|a| a = 'Foo'}", old_binding

などは, 動的に動的ローカル変数を追加したバインディングを生成しているこ
とになると思うのですが...

__
.........................................石塚 圭樹@今はフリー(^^;;...
------->>また, アドレス変わりました!! e-mail: keiju@bc.mbn.or.jp <<---

Thread

Prev Next

In This Thread

Prev Next