[ruby-list:472] Re: Q. repeat

From: matz@... (Yukihiro Matsumoto)
Date: 1996-09-02 07:18:12 UTC
List: ruby-list #472
まつもと ゆきひろです.

In message "[ruby-list:470] Re: Q. repeat"
    on 96/09/02, 石塚圭樹 <keiju@shljapan.co.jp> writes:
|
|けいじゅ@SHLジャパンです. 

|分かると思いますよ. 昔松本氏もいっていましたから(^^;;;

そういえばそんなことを言った覚えが….忘れていた.

|ただでさえも, 今のruby-modeは遅いのにね(^^;;; もっとどうにかなりません
|か? あと, endに対応する頭に飛ぶ機能とかが欲しいのですが, つくってもら
|えません?

遅い原因はパーズを開始する場所が遠すぎるせいでしょう.行頭に
ある予約語まで飛んでいるのですが((ruby-beginning-of-defun)の
地点),クラス定義が大きくなるとすぐ遠くなっちゃうんですよね.

文字列の内部でインデントしないためにそうしているんですが,手
近な行頭の def とかから始めればもうちょっと速くなるかも知れ
ません.

endに対応するjumpは考えてみましょう.

|でも, そういった意味では, whileイテレータとかifイテレータとかも欲しい
|なあ..

whileは普通意味のある値を持たないので,あまり {} 構文を使う
メリットは無いような気がします.ifはブロックを二つ以上とるこ
とがあるので(elsifやelse),普通のイテレータにはできません.

普通のイテレータの範囲で構わなければ,ちょっと前までは 
until/unless はイテレータだったんですけどね.適当な名前さえ
あればすぐにイテレータにできます.

今のif文やwhile文の文法に加えてイテレータとしても動作するよ
うにという要求はちょっとパーザにやさしくないですね(第一でき
るんだろうか).

  while cond
    ...
  end

  while(cond) {
    ...
  }

が両方動くような文法という意味ですが.

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

In This Thread

Prev Next