[#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:17644] Re: substitution at when-clause
けいじゅ@日本ラショナルソフトウェアです.
In [ruby-dev:17639] the message: "[ruby-dev:17639] Re: substitution at
when-clause", on Jul/03 13:44(JST) Yukihiro Matsumoto writes:
>まつもと ゆきひろです
>石塚さんは、はるか昔からそれを主張してましたね。もちろんはる
>か昔から却下しつづけているので、いまでもそうなっていないわけ
>なんですが。
(^^;;;
では, 私も代替案を:
case x
when v1
...
when v2
...
else
...
end
は
p = proc{|v| v === x}
if p.call(v1)
...
elsif p.call(v2)
...
else
...
end
と解釈できますね?
ですので, これをベースにcase文を拡張し, caseにブロックを渡せるようにする.
case {|v| v === x}
when v1
...
when v2
...
else
...
end
すると,
>|case any_expr with :foo
>|when a1 => r
>| ...
>|when a2 => r
>| ...
>|else
>| raise ..
>|end
相当は
r = nil
case {|v| r = v.foo(any_expr)}
when a1
...
when a2
...
else
raise ..
end
と書け,
>|case any_expr with :<
>|when 100
>|when 10
>|else
>| ...
>|end
相当は:
case {|v| any_expr < v}
when 100
...
when 10
...
else
...
end
って書けます.
これなら,
>このコードを見たときの動作は私には想像するのが難しいです。い
>や、もちろん説明されたら分かりますけど、なんだか直感的でない。
>それはなぜかと考えるとやっぱり、
ということもないですし,
>これ導入しても絶対に使いこなせませんって。で、訳のわからない
>プログラムの原因になるだけだと思います。明示的な方が良い場合
>もあると思いますよ。
一応やりたいことは明示されていると思いますが?
>あと、OO的観点からは「caseは良くない、polymorphismを使え」と
>いう格言があるので、よりcaseを拡張したくないというのも、もし
>からしたらあるかも。
これは, whenにクラスを渡したときの場合ですね? Ruby使っているとtype
switchに頼ってしまうことが多いかも知れない.
__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju@rational.com <<---