> 
> Issue #4591 has been reported by Masaya Tarui.
> 
> ----------------------------------------
> Bug #4591: (1.5...2).max #=> 1 (Range#max)
> http://redmine.ruby-lang.org/issues/4591
> 
> Author: Masaya Tarui
> Status: Open
> Priority: Normal
> Assignee: 
> Category: core
> Target version: 
> ruby -v: ruby 1.9.3dev (2011-04-20 trunk 31311) [i386-mswin32_100]
> 
> 現在、(1.5...2).maxが1になります。
> beginより小さい値が返ってくるのは違和感があります。
> 
> 終端を含まないRangeについて、endがIntegerである時にend-1を返していますが、
> それはbeginもIntegerである事が想定されてると思います。
> 結局 beginがIntegerじゃないときは、endがIntegerでない時と同様に
> maxが定義できなさそうなので、やはり同様にErrorにした方が親切かと思います。

わたしRubyをまったく知らないんですけど、rangeに対するmaxってようするに

1) rangeの範囲に収まる整数値をすべて取り出す
2) その集合に対して、最大の数値を取り出す

という操作をしているわけですよね。ここで、(1)で整数値が1つも取り出せなかった
(今回のケース)のときにtype errorになるのは納得できるのですが、そうじゃないときも
errorにするのが親切なんですかね?

end-1がbeginより小さかったらエラー。というロジックだと困ります?endが
非整数値のときの扱いにも同じ疑問があるのですが。