From: matz@... (Yukihiro Matsumoto) Date: 1996-01-30T14:35:31+09:00 Subject: [ruby-list:99] Re: control まつもと ゆきひろ@トヨタケーラムです. In message "[ruby-list:98] control" on 96/01/30, P nakawtse 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) { 処理… } という風に使えます.