[#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:7] Re: eval with dynamic binding [Re: meta programming features]

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

In [ruby-dev :00004 ] the message: "[ruby-dev:4] Re: eval with dynamic
binding [Re: meta programming features] ", on Jul/29 00:08(JST)
matz@netlab.co.jp (Yukihiro Matsumoto) writes:

>|{
>|  int foo;
>|  int bar;
>|  {
>|    int foo;
>|    bar;
>|  }
>|}

>ちょっとわかりませんでした.

rubyでの,

  {|foo|...}

の fooはローカル変数の宣言に見えたってことでした. 

# 上のCのfooと似ているでしょ.

>|binding.type とすると Data になりますね. Dataって何ですか? クラスじゃ
>|ないですよね. 
>
>いちおうクラスですよ.Cのポインタをラップする時に使われる
>ruby的にはなんの働きもしないクラスですが.

なるなる. 一応クラスなんですか... ドキュメントには載っていませんが. 

>|  new_binding = eval "proc{|a| a = 'Foo'}", old_binding
>
>old_bindingでローカル変数aが使われていないといなければ動的ロー
>カル変数aを追加しますが,既に使われていればそのローカル変数
>(おそらくはどこかのスコープで共有している)の値を変更します.
>
>こういう動作をするんじゃ,動的ローカル変数を追加するとは呼べ
>ないのでは?

やっと分かりました. 確かに``上で''話してありました!! 

一般のeval路線でローカル変数をうまく追加するのは, 難しいのですかねえ...

やはりそうなると, lispのback-quoteやmake_symbolみたいな路線しかないん
ですかね??

foo = Foo.new # non string object
eval "bar = `foo`"

さらに barをローカルにしたければ,

foo = Foo.new # non string object
bar = make_symbol :bar
eval "set `bar`, `foo`"

make_symbolは欲しい機能ではあるど, back-quoteは難しそう...

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

Thread

Prev Next

In This Thread