[#17615] substitution at when-clause — Takaaki Tateishi <ttate@...>
立石です.
まつもと ゆきひろです
At Tue, 2 Jul 2002 02:54:01 +0900,
まつもと ゆきひろです
At Tue, 2 Jul 2002 13:30:17 +0900,
まつもと ゆきひろです
立石です.
まつもと ゆきひろです
青山です。
立石です.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
At Wed, 3 Jul 2002 17:48:58 +0900,
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#17625] Re: Getting CGI arguments as scalars — Wakou Aoyama <wakou@...>
青山です。
[#17662] update irb to cvs repository — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
In article <200207041003.TAA06746.keiju@ishitsuka.com>,
けいじゅ@日本ラショナルソフトウェアです.
[#17676] generation GC — Minero Aoki <aamine@...>
あおきです。
[#17706] self in block — masaki <GEC01122@...>
[#17714] Re: self in block — masaki <GEC01122@...>
[#17722] Re: self in block — masaki <GEC01122@...>
[#17725] Re: self in block — masaki <GEC01122@...>
まつもと ゆきひろです
In article <1027176584.577546.14709.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
At Sun, 21 Jul 2002 01:10:02 +0900,
まつもと ゆきひろです
[#17730] Re: self in block — masaki <GEC01122@...>
At Sat, 20 Jul 2002 21:27:58 +0900,
高橋征義です。
けいじゅ@日本ラショナルソフトウェアです.
[#17764] Re: self in block — masaki <GEC01122@...>
まつもと ゆきひろです
In article <1027383423.558649.31176.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1027404202.545188.1283.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1027406979.880878.1358.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1027409151.187595.1406.nullmailer@picachu.netlab.jp>,
前田です。
In article <87bs8xkfqr.wl@studly.priv.netlab.jp>,
前田です。
[#17774] Re: self in block — masaki <GEC01122@...>
[#17832] Re: [ruby-cvs] ruby: * random.c: replace with Mersenne Twister RNG. — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#17840] Re: new mathn [Re: Rational#to_int ← String#center] — keiju@... (石塚圭樹)
けいじゅ@日本ラショナルソフトウェアです.
[#17851] undef_method ? — Shin-ichiro HARA <sinara@...>
原です。
[#17855] non-blocking IO — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
[#17867] parenthesize argument(s) for future version — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
[ruby-dev:17635] Re: substitution at when-clause
立石です. # すいません,反論ばかりになってしまいますが… At Wed, 3 Jul 2002 08:45:21 +0900, > 必ずしもそうではないでしょう。===のレシーバはwhenに指定した > オブジェクトですから。こちらにはユーザ定義でないオブジェクト > (整数とか文字列とか正規表現とかクラスとか)を使うことが普通で > しょうから、「良くない」とまでは言えないと思います。逆に必ず 僕はユーザ定義のオブジェクトをwhenに置くことができて,その値を 得ることができると便利な場合があるというのが主張ですので,この ユーザ定義のものをwhenに置くことが妥当かどうかが意見が分かれて いる要因でしょうか? > 正直、 === がどちらをレシーバにするかを覚えておくのは結構面 > 倒なようで、間違って逆に覚えている人をみかけます。となると、 > ===を使うことを積極的に考える必要があるとなるとcaseの難しさ > がより増えてしまうような。 設計/実装者は === を定義するときcase文で使って分かりやすいよう にするのではないかと,そして, > 「===がtrue/false以上の情報を返す」のは「その情報を利用して > もらいたい」あるいは「その情報を利用すると便利なケースがある」 > と設計者/実装者が思ったことを意味するということには同意しま > す。しかし、それをcase文の内部で暗黙に呼び出したときにまで > 利用することを期待しているかどうかは別です。むしろ、case文を === はcase文のためにあるものと思っていたのですが… > 立石さんの提案するcaseのような制御構造があってはいけないとは > 言いませんが、採用するならcaseを拡張するのではなく > > * 呼び出すメソッドを明示的に指定する > * caseではない全然別の予約語を使う > > 新しい文法にした方が良いと思います(Perl6にならってgivenとか)。 > 個人的にはそこまでの価値は無いような気もしますが。 結局場合分けなので,caseの拡張が良いと思っています. x = any_expr if( r = a1.foo(x) ) ... elsif( r = a2.foo(x) ) ... elsif( r = a3.foo(x) ) ... else raise ... end 上記の式を,つぎのように書けるのは同じメソッド名や式を何度も書か ずに済むので楽だし,同じ計算を何度も行わないような効率化のためか ら一度変数へ結果を代入するという手間も省けます. case文が計算結果を用いた条件分岐だという意味からは外れないと僕は 思っています. case any_expr with :foo when a1 => r ... when a2 => r ... when a3 => r ... else raise .. end これだと,「foo()がnilでない場合」という場合分けになります. そして,これができると, case any_expr with :< when 100 when 10 else ... end などとして,「○○より大きい場合」という場合分けもできて個人的には いいなぁとは思うのですが,case-withはややこしすぎるかもしれないとい うのはちょっと思っています. ちなみに,'<'などを使いたいという話は以前ありましたね. そのときは,when節で'<'などを指定する話だったと思いますが,記憶違い かもしれません. -- Takaaki Tateishi <ttate@kt.jaist.ac.jp>