yarv-dev:791
From: SASADA Koichi <ko1 atdot.net>
Date: Wed, 01 Feb 2006 01:20:18 +0900
Subject: [yarv-dev:791] Re: open> different scope of eval
ささだです. 雪見酒 wrote: >> これって,evalだと定数がメソッドスコープの中で使えるって事だと思うんで >>すが,そもそもこれはまずいような気がするんですがどうでしょうか. > > そうですねぇ、Rubyの場合、定数の定義は「モジュール/クラスのトップレベル > で一度だけオブジェクトを代入できる変数」ということで、結構あいまいです > し、この「トップレベル」が足かせになっていてevalを使ってメソッドスコープ > で定数を定義する場面は結構多いと思います。 この場合は「トップレベルでないといけない」は制限,というより仕様(そう あるべくしてそうしている)と思うので,たとえばここでは Module#const_set を利用するべきではないでしょうか. > でも私に言わせると、 > > Hoge = [] > Hoge << 10 > > なんてのができる方が「定数」という意味では、よほどいやらしいと思いますけ > ど、クラスやモジュールを定数としているRubyの仕様では止むを得ないようにも > 思います。いっそのこと「定数」という表現をやめてしまえばすっきりするかな? > > #「じゃ、Rubyのこれって何なの?」といわれると適切な名前が浮かばないけど freeze とは別な話ですよね. > ま、要するに私はRubyとの互換性を問題にしているのであって、Rubyそのものの > 仕様について問題を投げかけているわけではないです。 YARV は 2.0 になると思うので,仕様の検討は必要だと思います.どちらかと いうと,雪見酒さんへ,というよりまつもとさんへのメールでした. -- // SASADA Koichi at atdot dot net -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
786 2006-01-29 17:31 [yukimi_sake mbi.nift] open> different scope of eval 789 2006-01-31 02:47 ┣[ko1 atdot.net ] 790 2006-02-01 00:14 ┃┗[yukimi_sake mbi.nift] -> 791 2006-02-01 01:20 ┃ ┗[ko1 atdot.net ] 854 2006-02-13 20:44 ┗[ko1 atdot.net ] fixed> Re: open> different scope of eval