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

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