From: Kazuhisa Yanagawa Date: 1997-11-18T17:06:33+09:00 Subject: [ruby-list:5325] Re: Questions on specs and threads In message-id <199711180708.QAA16435@picachu.netlab.co.jp> matz@netlab.co.jp (Yukihiro Matsumoto) writes: > | 1) case 文について > | > | case 文で when 節に配列を書くとマッチしません. > > whenには「when 1,2,3」というような書き方を許していますので, > 配列の === を再定義することは考えていませんでした.検討して > みます. Whites = [? , ?\t, ?\n] とやって, when に書こうとしたら(当然)役にたたなくって結局書き下し た, という馬鹿話があったので, お願いします. # scanner と共用したかっただけだったりする. > | 2) typecase > | > | typecase のようなものはいりませんでしょうか? if-elsif-else-end で > | 十分という意見は確かにあるのですが. > > 実はModule#===が再定義されているので,以下のような使い方が出 > 来ます. 新しいドキュメントを持ってくる必要がありそうな. ruby-man-jp-970701.tar.gz のでは書いてないようでした. > すんません.この件は以前から指摘されているのですが(演算子はC > に似ているのに++と--は対応する演算子が無い),++の動作が本質 > 的に「変数を操作する」ものであるため,変数がオブジェクトでな > いRubyでは導入できないでいます.++や--の「オブジェクト指向的 > 意味」がRubyの他の部分と整合性を保ったまま定義できれば採用し > たいのですが…. `+= 1' や `-= 1' の略記, では弱い? > | SR 風な(CSP 風な?) > | > | if condition1 > | ... > | [] condition2 > | ... > | [] else > | ... > | end > | > | なんてのも好きかもしれない. > > すいません.これどういう動作なんでしょう? CSPには弱くて…. > # Betaもよく分かんなかったなあ. 実は動作は if condition1 ... elsif condition2 ... else ... end と同 じです. たんに, みてくれが好きかな, というぐらいの話で. (cond のような)多条件分岐を書くのに同じレベルの条件が同じ辺りにく るのでちょっと嬉しい, と. # CSP の select とも全然違うはずです. `[]' という記号が CSP 由来なの # かな, ってぐらいの話で. > | 4) thread についての疑問 > | > | これは今までのとは何の関係もありませんが....最後に付けたようなス > | クリプトがデッドロックします. 結局は Queue#push に変な引数を与え > | るのが悪いのですが, なんで Wrong # of arguments(3 for 1) とかにな > | らないのかが理解できません. > > これは「Thread内部で発生した例外は,デフォルトではそのthread > を終了させて,外に通知しないから」でしょう.この動作そのもの > は仕様です.で,それに対する対策は以下のいずれかです. そういえば昔読んだことを思い出しました. 実際 rescue で引っかけて見て 例外が起こっていることが確認できました. > |# 大雑把に言って, active object の手抜きな実装....のプロトタイプ. > |# Actor は send で送られて来たメッセージを disp でディスパッチしたい. > > これ結構面白いっすね. 修論の研究で concurrent object をやろうとして, Actalk の真似をしよう として挫折した後だったりします (^^; active object のインスタンスは知らないメッセージが来たら全部キューに 突っ込んでしまう. で, ディスパッチャプロセスはキューから順番にメッセー ジを取り出して処理していく. 「active object と普通のオブジェクトを transparent に扱えるから, 従 来の資産を活かすことが出来る」と言う主張でした. # ....ほんとはちょっと違ったような気もするけど, ま, いいや. 割とどうでもいいようでそうでもない話. 「ML への登録やコマンドのメールに は signature が付かないようにしないと意図しないメールが ML に流れます」 という警告を何処かに書いた方がいいかもしれないと思う.... 署名を自動添付す るメイラの場合には特に注意が必要, とか. =========================================================================== 柳川 @ 情報システム学研究科 . 電気通信大学 katze@yuba.is.uec.ac.jp November 18th, 1997. # Time and tide wait for no man.