まつもと ゆきひろです

Integer#stepってメソッドがあって

  i.step(max,step) do |idx|
    ...
  end

という風に使うのですが、
実際にはこれは

  idx = i
  while idx < max
    idx += step
  end

と実現できるので、整数である必要はなくて、Floatでも意味のあ
る操作です。ということで、Integerのスーパークラスである
Numericに移動させてみたのですが、考えてみればNumericのサブク
ラスにはComplexのようなスカラーでないクラスもあるんですよね。

これに対してどのように考えればよいと思いますか?

  * NumericのサブクラスにScalarを用意すべき
  * Scalarというモジュールを用意し、IntegerとFloatにMixin
    その他のスカラーなクラスが将来あればそれもこれをMixin

くらいがすぐに思いついたんですけど。

                                まつもと ゆきひろ /:|)