From: Masaya TARUI Date: 2011-04-21T13:01:16+09:00 Subject: [ruby-dev:43410] Re: [Ruby 1.9 - Bug #4591][Open] (1.5...2).max #=> 1 (Range#max) そもそも、beginとendのオブジェクト及びRangeのメソッドによって、 離散値として扱う場合と、連続量として扱う場合が混ざってしまってるんですよね。 > わたしRubyをまったく知らないんですけど、rangeに対するmaxってようするに > > 1) rangeの範囲に収まる整数値をすべて取り出す > 2) その集合に対して、最大の数値を取り出す > > という操作をしているわけですよね。ここで、(1)で整数値が1つも取り出せなかった > (今回のケース)のときにtype errorになるのは納得できるのですが、そうじゃないときも > errorにするのが親切なんですかね? > > end-1がbeginより小さかったらエラー。というロジックだと困ります?endが > 非整数値のときの扱いにも同じ疑問があるのですが。 離散値を扱うと思ってるとこれでもよさそうなんですが、 そうすると今度は(1..1.5).max #=>1.5 になっているのが1にしないといけなくなってしまい、割と大変更になりそうです。 -- 樽家昌也(Masaya TARUI) No Tool,No Life.