From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-07-29T15:05:29+09:00 Subject: [ruby-dev:13] Re: eval with dynamic binding [Re: meta programming features] けいじゅ@今はフリー(^^;;;です. In [ruby-dev :00010 ] the message: "[ruby-dev:10] Re: eval with dynamic binding [Re: meta programming features] ", on Jul/29 11:49(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes: >|やはりそうなると, lispのback-quoteやmake_symbolみたいな路線しかないん >|ですかね?? >|foo = Foo.new # non string object >|eval "bar = `foo`" > >fooはローカル変数でevalから参照できますから > > eval "bar = foo" > >でなんの問題もないと思うのですが. ごめんごめん, eval "bar = `foo`", other_binding をしたかったのでした. >うーん,なんともlisp的ですねえ.perlのラクダ本を読んで,文字 >列ベースのevalの使い方を身に付けて頂くというのはどうでしょう. うーん. 今もこういう感じのことはやることがあるのですが, 結構大変なんで すよね(;_; ただ, meta level futureが用意されるとだいぶ楽になりますが... >それとは別に,単なる文字列化のto_s,人間が読むためのinspect >に並ぶ,evalすると元のオブジェクトを返す文字列化メソッドがあ >るというのは面白いとは思いますが. おお. それすごいなあ... id化(to_id)とidからオブジェクを返す(from_id)APIがあ ればいいのかな? そうすると, eval "bar = #{foo.to_id}.from_id", other_binding ができますね. IDを他だ単に文字列化しただけだと色々問題ありそうなので, 改変を防ぐための暗号化(? カプセル化?)を行う必要がありそうですが... 実 装はそれほど難しくなさそうですね. __ .........................................石塚 圭樹@今はフリー(^^;;... ------->>また, アドレス変わりました!! e-mail: keiju@bc.mbn.or.jp <<---