On Oct 11, 9:30 pm, Marek Kasperkiewicz <m.kasperkiew... / gmail.com>
wrote:
> If i try this
> puts (1..10).max
> it runs fine.
> If i try this
> puts (1..100000000).max
> It is extremely slow. Instead of using straight math max= 100000000-1
> it uses some king of interator to find out the value of max.
> What is the catch here?

Well, one advantage of (1..N).max compared to your 'straight math'
method is the former provides the correct answer and the latter does
not. :)

However, for efficiency, if for some reason you don't want to simply
use max = N, you'll find max = (1..N).end is much faster than max =
(1..N).max since it doesn't look at each element in the range.

The Enumerable#max method is generalized to also work for cases such
as max = [1,10,100,10,1].max