早速のフォローありがとうございます。(さっき、Numericの
stepメソッドを知ったところです。今回の話しには直ちには
使いにくそうですが。)

On Thu, 11 Mar 1999 13:06:56 +0900
matz / netlab.co.jp (Yukihiro Matsumoto) wrote:

> たとえば,
> Arrayをインスタンス変数に持つオブジェクトとか.あるいは今回
> はそもそもクラスを作る必要はなくて,Stepのような要素を持つ
> Arrayを生成するメソッドをどこかに(関数的あるいはArrayクラス
> に追加しちゃう)定義するのでもOKだったように思います.
おっしゃるとおりでした。ちょっと継承なるものを試してみよう、
という気もあって。
とにかく、いろいろ試している時期ですので、おつきあいいただき
感謝しています。

> |もう一つは、できあがったものをcaseのwhen節で使うのですが、
> |変数に代入すると、個々の要素が参照されなくなってしまいます。
> |当たり前といえば当たり前ですが、これが、定数にいれると参照
> |されるのは何故でしょうか。仕様です、でもいいのですが、いま
> |いちArrayの扱われ方が分かってません。早くRuby本が出ないかな。
> 
> すみません.期待通り動かなかったプログラムと期待する動きを紹
> 介して頂けませんか? 私が1.2.3で試したところ
こちらは、私の勘違いでした。勘違いというのは、変数のスコープの
問題で、case文がclassの中のdefの中にあり、ローカル変数への代入は
classの外にありました。それにしては、classの中での参照で、未定義だ
といって、怒られなかったような気もしますが、これにはわけがあるので
しょうか?

> あ,ただし,この配列の中の
> 要素を使ったcaseはは1.3系では動かなくなりますから使わないほ
> うが良いでしょう.1.3系では
> 
> case 60
> when *s
>   p s
> end
なるほど。動いてしまったので使ってしまいましたが、どうもふに
落ちませんでした。それとさっきのスコープの話しが重なって、配列
がどういう解釈をされているのだろう、ということになりました。
*sで配列が展開されるということになれば、理解がしやすくなります。

Perlを捨ててRubyに乗り換えることにして日が浅いのですが、今後とも
よろしくお願いします。
----
Akira Endo, akendo / t3.rim.or.jp