ふなばです。 >>> Tue, 9 Mar 1999 05:31:42 +0900 の刻に 「wakou」、すなわち >>> wakou / fsinet.or.jp(Wakou Aoyama) 氏曰く wakou> 引続き電車で例えると、各駅停車(step 1)と特急(step 10)では駅の数 wakou> (to_a.size)は変わりますが、これは駅の数(参照点)が変わるだけであり、距 wakou> 離(size)が変わるわけではありません。そして、方向については上り(step 正) wakou> と下り(step 負)が有り得ると思われます。Range の大きさについては差その wakou> ものではなく、その絶対値とするのが適切と思われます。 通過駅をどう考えるか、ということもありますが、僕はあくまでも、10..1 は、 大きさが 0 になると考えたいです。これが大きさ 10 だと言えるなら、方向 も自ずと決まるという話になります。そうすると、別個に step に正負がある というのはヘンに思うんですけど。 もちろん、Range の大きさと、歩数とは関係ないということもできるかもしれ ないですけど、それでは大きさの意味がないです。 wakou> step を利用しない限りは max..min の挙動が変わるだけですから、過去との wakou> 互換性を持つ書き方をするには a < b のチェックを入れる程度になると思わ wakou> れます。これは a < b のチェックせずにおまかせにする方が良くない書き方 wakou> と思われるので、良い方向での不便さでしょう。 このあたり、よくわからないのですけど、Range が step を利用しないことも あるんですか? で、その場合は max..min の挙動が変る? チェックせずに、おまかせにするのが良くないといわれますが、それは違うと 思いますよ。それも含めて論理を決めているんですよ。それを捨てるのは決定 的な違いで、 今現在の仕様からいっても、 僕の考えでも、10..1 を 10,9..1 のように解釈してもらおうとするほうが、望ましくないと思います。オマカセ せずに、 upto、downto、step などを直接につかうべきでしょう。良い方向で の不便さとは思いません。 > # この話は Enumerable と each にまつわる議論ともよく似ていると思う。 wakou> Enumerable の場合は each で実現出来る機能はどんどん採り入れてしまって wakou> OK と思われますが、Range の場合は upto で実現出来るからといってそれが wakou> Range にふさわしいとは限りません。 なんでもかんでも each を基本にしているのでは不足ではないか、という議論を 思いだしていました。 wakou> Enumerable は each 依存ですが、Range は upto 依存ではなく、単に Range wakou> の実装に upto が利用されているというだけの関係と思われます。 いや、それは違うんじゃないですかね。マニュアルに書いてあるし、それを信 じて、クラスを書いている人もいます。 ふなば ただよし