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