けいじゅ@日本ラショナルソフトウェアです.

# 松本さんの反応がないから, イマイチなのかなとおもいつつ...

In [ruby-dev:17649] the message: "[ruby-dev:17649] Re: substitution at
when-clause", on Jul/04 02:58(JST) Takaaki Tateishi writes:

>> for v case v == x
>> when v1
>>   ...
>> when v2
>>   ...
>> else
>> end
>
># 僕は,このfor-caseが好きです.

私もです. for v の v が when に対応するからでしょうかね.

この文法の利点は, 主客も逆転できるのもあるかも知れません. どなたかが
case/whenは直感に反するので使わないと言っていましたが, それも問題なく
解消できます.

パラメータを逆にして:

  for v case x === v

とするだけですので... というか

  for v case x.kind_of?(v)

ってできるといった方がいいかな?

>> for v case r = v.foo(any_expr)
>> when a1
>> となりますので, => はそれほどほしくならないかも
>
>そうかもしれません.
>ただ,when節毎でより適切な変数名を*直接*指定して使いたいと
>少し思ってはいます.

適切な名前は重要だと思います. 

私自身は, Rubyには, メソッド内の一部分における局所的な変数の導入を積極
的に進めるのはちょっとと思っていますが.

# 立石さんはliperなのではないかと思いますが...
# やはり, メソッドは縦40行内に収まらないと(^^;;

In [ruby-dev:17650] the message: "[ruby-dev:17650] Re: substitution at
when-clause", on Jul/04 03:10(JST) nobu.nakada / nifty.ne.jp writes:

>なかだです。

>> あと, パラメータを複数導入して. 
>> v1 = ...
>> v2 = ...
>> for x,y case x === v1 && y === v2
>  when [Integer, Integer]
>  when [Integer, Float]
>>   ...
>> else
>> end
>
>他との整合性からすれば、どっちかというとこうでは。

こちらの方がいいですね. 互換性もですが, こちらの方がfor文とeachのパラ
メータの取り扱いに忠実なので自然かと思います.

__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju / rational.com <<---