[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:661

From: SASADA Koichi <ko1 atdot.net>
Date: Wed, 05 Oct 2005 18:03:24 +0900
Subject: [yarv-dev:661] Re: environment in eval

 ささだです.

Yukihiro Matsumoto wrote:
> eval実行後フレームをバインディングオブジェクトにコピーするの
> でもなんでも構いませんが、これを実現しないと動かないプログラ
> ムがかなりあると思いますし、なによりbindingの意味が変化して
> しまうと思います。効率は悪くても構いませんからぜひ実現してい
> ただきたいです。

http://www.rubyist.net/~matz/20031023.html#p02
> eval内で新規に登場したローカル変数はeval終了後消える

これは,

「ただし,その eval 実行時に利用した Binding オブジェクトにはローカル変
数が残る」という付則付き,ということでしょうか.私は「終了後消える.どこ
にも残らない」と読んでいました.

 binding の意味をイマイチわかっていないのですが,どこかに資料などありま
すか.

 もう一つ確認なんですが,

b = binding
eval('a=1', b)
eval('p a', b)              # (1) 1
eval('p local_variable', b) # (2) ["a"]

であって,

eval('a=1')
eval('p a')       # (1) エラー
p local_variables # (2)  []

なのでしょうか([yarv-dev:655] Re: environment in eval).

 eval のバインディングの省略形は,eval(str, binding) の省略形だと思って
いたんですが,違うんですね.


 うまい実装の仕方が思いつかないのですが,考えてみます.

 まだまだ色々と誤解してそうです.難しい.

-- 
// 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  ]