Subject: Re: Scalar class?

正木です。

私は step は離散的な順序に限った方が良いと思います。
n>=0 の場合にかぎれば 

def step(max,n=1)
  i=self
  begin
    yield i
    n.times{i=i.succ}
  end while i < max
end

ですから Float の方に拡張するのではなくて、succ と "<" が定義されている
String の方に拡張して
["aa","ab",...,"zz"].each の代わりに
"aa".step("zz") と書けるとか

あるいは素数に対して
[2,3,5,7,11].each の代わりに
Prime.step(2,11)
といったことができる方が便利だと思いますが如何でしょう。

|[ruby-math:00718] Re: Scalar class?
|From: Masahiro TANAKA <masa / ir.isas.ac.jp>

|n は繰り返しの回数なので、非負の整数に限定しています。
|これは仕様変更になるので #step とは違うものかもしれません。

上記の拡張の場合は n=1 に限定しても良いのですが、これが
仕様変更になってまづいということなら、step が負のときは、self
と max を交換するとか、あるいは succ の逆の previous を定義するとか
ですが、前者は元のイメージとは一寸違うし、後者は少し面倒ですか?

ここまで書いてよく考えてみたら、上の method は n=1 限定にして
別の名前(each_succ とか)にした方が良いような気がしてきました。
ただし step を Float には拡張しない方が良いという意見は変わりません。