>From: matz / ruby-lang.org (Yukihiro Matsumoto)
>Subject: [ruby-math:00709] Scalar class?

> Integer#stepってメソッドがあって
> 
>   i.step(max,step) do |idx|
>     ...
>   end
> 
> という風に使うのですが、
> 実際にはこれは
> 
>   idx = i
>   while idx < max
>     idx += step
>   end
> 
> と実現できるので、整数である必要はなくて、Floatでも意味のあ
> る操作です。

Floatの場合、こう書くのと idx に誤差が積もっていくとか
idx < max の判定が誤差で微妙だったりするので、できれば

   start.step(n,step) do |idx|
     ...
   end

と書いて

   for i in 0...n
     idx = i*step + start
   end

と実現するのが望ましいのだと思います。
(名前は変えたほうがいいのかも知れませんが)
そうすれば、これは Complex にも適用できます。

田中昌宏