まつもと ゆきひろです.

書きかけのメイルを失っちゃいました….悲しい.

In message "[ruby-list:2008] [Request] static var? (Re: Array as list/tupple)"
    on 97/01/31, sinara / blade.nagaokaut.ac.jp <sinara / blade.nagaokaut.ac.jp> writes:
|
|原です。

|(1)クラス固有のグローバル変数(?)がほしーい。

なんどか検討してみたことがあるのですが,その度に挫折していま
す.難しいのは変数の場合その値の共有の範囲を限定するのが難し
いということです.

しかし,ほとんどの場合(若干姑息な手段を用いる必要があっても),
定数で何とかなるものです.

|class Foo
|  def bar(x)
|    if (y = %Cash[x])
|      y
|    else
|      y = 本来の処理
|      %Cash[x] = y
|    end
|  end
|end

class Foo
  Cache = {}
  def bar(x)
    if (y = Cache[x])
      y
    else
      y = 本来の処理
      Cache[x] = y
    end
  end
end

|class Foo
|  def initialize
|    %ProductNum += 1
|    @my_num = %ProductNum
|  end
|end

class Foo
  ProductNum = [0]
  def initialize
    ProductNum[0] += 1
    @my_num = ProductNum
  end
end

で,どうでしょう?

|これは大変な仕様変更だな。ruby++ でしょうか。:-)

将来ありうる追加仕様としてはファイル(あるいはパッケージ)に固
有のグローバル変数というのはありえるかもしれないとおもってい
ます.Cのstaticのグローバル変数みたいなもんですね.
|
|(2)ruby からオブジェクト指向的なものを取り除いた ruby--
|がほしーい。

イテレータ以外の制御構造とグローバル変数,ローカル変数はオブ
ジェクト指向してませんね.

しかし,メソッドはないでしょうから(関数のようにみえるものも
含めて)全部ダメでしょうし,演算子も一部の制御構造タイプのも
のを除いては全滅ですね.それに文字列,正規表現,配列,連想配
列全てオブジェクトですからだめですね.もうほとんどなにも残ら
ないのでは?

原さんがどうしても欲しいというんでしたら,特別に作っても良い
ですけど(費用は後で相談しましょう),喜ぶ人は少ないでしょうね.

|(3)複数行にわたるコメント指定がほしーい。
|
|if FALSE ... end でもいいけど、ruby-mode.el がインデントつけて
|くれるから、、。

ruby-encomment-regionとかじゃダメなんですよね.ずっと先なら
perlのようなembedded documentを組み込むかも知れませんけど.

				まつもと ゆきひろ /:|)