[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) {
...
}
が両方動くような文法という意味ですが.
まつもと ゆきひろ /:|)