> So as [0 ... len] is a new Array, I expected the same behaviour.
> But it was not so obvious. It took the whole array and executes the
> statement ones.

[0...len] is Array. Which holds only one Range object:

>> a = [1...5]
=> [1...5]
>> a.class
=> Array
>> a.length
=> 1
>> a[0].class
=> Range


Regards,
Rimantas
--
http://rimantas.com/