[ruby-list:99] Re: control
From:
matz@... (Yukihiro Matsumoto)
Date:
1996-01-30 05:35:31 UTC
List:
ruby-list #99
まつもと ゆきひろ@トヨタケーラムです.
In message "[ruby-list:98] control"
on 96/01/30, P nakawtse <nakawtse@syrinx.dq.isl.ntt.jp> writes:
|中渡@NTTです.
| こんな仕組みだったんですね.
| うちは .plでprolog-modeになってしまう..
同じやり方で.plでperl-modeにもできます.
(setq auto-mode-alist (cons '("\\.pl$" . perl-mode) auto-mode-alist))
# 新しいバージョンのemacsでは.plはperl-modeだったような.
| ところで,
|
| while expr1 stmt if expr1 ;
| は
| (while expr1 stmt ) if expr1 ;
| それとも
| while expr1 ( stmt if expr1) ;
| になるべきなのでしょうか?
実は
while expr1 stmt if expr2
はrubyではsyntax errorです.
while expr1; stmt if expr2 end
ならOKかな.セミコロンと`end'が重要です.意味は当然
while expr1; (stmt if expr2) end
です.ちなみに
stmt1 if expr1 while expr2
は
(stmt1 if expr1) while expr2
です.
| もしかして while(expr).stmt なクラスや
| stmt.while(expr) なメソッドがあるとか..
基本制御構造はメソッドでない方が自然であると思っています.そ
のわりにはイテレータなどというメソッドによる制御構造と呼べな
いことは無いものもありますが.
ちなみにイテレータの応用で,
def until(cond)
return if cond
yield
retry
end
などとすると制御構造のメソッドが定義できたりします.
until(i < 10) {
処理…
}
という風に使えます.