[#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:17631] Re: substitution at when-clause
まつもと ゆきひろです
In message "[ruby-dev:17630] Re: substitution at when-clause"
on 02/07/03, Takaaki Tateishi <ttate@kt.jaist.ac.jp> writes:
|> whenになにを書けば適切かという情報を「=== を使う」というとこ
|> ろから得るのは王道だと思いますが、たとえばwhen節に置くクラス
|> 別に覚えておくという手もある(というか、そうしてる人は多いと
|> 思う、whenに置くクラスは普通は限られてるし)ので、それだけで
|> は「それほど異質でない」とは言い切れないと思います。
|
|その覚えるという方法が良いとは言えないのではないでしょうか?
|ユーザが提供するクラスで === を再定義しないことを仮定している
|ように思えます.
必ずしもそうではないでしょう。===のレシーバはwhenに指定した
オブジェクトですから。こちらにはユーザ定義でないオブジェクト
(整数とか文字列とか正規表現とかクラスとか)を使うことが普通で
しょうから、「良くない」とまでは言えないと思います。逆に必ず
===を使うことを覚えなくてはいけないほど、標準クラスの動作を
置き換えるのは「良くない」ことだと思います。
正直、 === がどちらをレシーバにするかを覚えておくのは結構面
倒なようで、間違って逆に覚えている人をみかけます。となると、
===を使うことを積極的に考える必要があるとなるとcaseの難しさ
がより増えてしまうような。
|そして,===がtrue/false以上の情報を返すなら,その情報を利用して
|もらいたいという意図があると思います.逆にcase文で結果を取り出
|せるなら===で利用価値のある値を返そうとする人も増えるのではない
|かと思います.
「===がtrue/false以上の情報を返す」のは「その情報を利用して
もらいたい」あるいは「その情報を利用すると便利なケースがある」
と設計者/実装者が思ったことを意味するということには同意しま
す。しかし、それをcase文の内部で暗黙に呼び出したときにまで
利用することを期待しているかどうかは別です。むしろ、case文を
使うときに考えることが多くなるので、良くないのではないかなあ
と感じています。
立石さんの提案するcaseのような制御構造があってはいけないとは
言いませんが、採用するならcaseを拡張するのではなく
* 呼び出すメソッドを明示的に指定する
* caseではない全然別の予約語を使う
新しい文法にした方が良いと思います(Perl6にならってgivenとか)。
個人的にはそこまでの価値は無いような気もしますが。
まつもと ゆきひろ /:|)