yarv-dev:658
From: SASADA Koichi <ko1 atdot.net>
Date: Wed, 05 Oct 2005 16:48:22 +0900
Subject: [yarv-dev:658] Re: environment in eval
ささだです. Yukihiro Matsumoto wrote: > |b = binding > |loop{ > | print "> " > | ans = eval("b=binding; #{gets}", b) > | puts "ans: #{ans}" > |} > | > |というプログラムでした.eval を行うごとに,毎回 binding が作られるので, > |eval 実行環境の binding を次の eval で使うことで,ローカル変数なども引き > |継ぐことができます. > > 毎回bindingを呼ぶ必要があるんですか。最初に作ったbindingを毎 > 回使いまわせば良いように思えるのですが。 b = binding eval('a=1', b) eval('p a', b) # (1) 1 eval('p local_variable', b) # (2) ["a"] ということでしょうか.毎回 eval で作ったフレームは捨てるので,今の構造で はこれが出来ません.これは実現しなければいけませんか. -- // SASADA Koichi at atdot dot net // -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
654 2005-10-05 15:42 [ko1 atdot.net ] environment in eval 655 2005-10-05 16:01 ┗[matz ruby-lang.org ] 656 2005-10-05 16:15 ┗[ko1 atdot.net ] 657 2005-10-05 16:36 ┗[matz ruby-lang.org ] -> 658 2005-10-05 16:48 ┗[ko1 atdot.net ] 660 2005-10-05 17:50 ┗[matz ruby-lang.org ] 661 2005-10-05 18:03 ┗[ko1 atdot.net ] 662 2005-10-05 18:26 ┗[matz ruby-lang.org ] 663 2005-10-06 11:52 ┗[ko1 atdot.net ] 664 2005-10-07 16:45 ┗[matz ruby-lang.org ] 665 2005-10-07 17:03 ┗[ko1 atdot.net ] 666 2005-10-07 17:15 ┗[usa garbagecollect.j] 667 2005-10-07 17:19 ┗[matz ruby-lang.org ] 668 2005-10-07 20:45 ┣[ko1 atdot.net ] 669 2005-10-07 21:51 ┃┗[shiro lava.net ] 670 2005-10-07 23:34 ┗[nobu.nokada softhome] 671 2005-10-08 00:40 ┗[matz ruby-lang.org ]