[].slice(0, 100).each do |x| puts x end
that shouldn't be an error and it seems to be the principle of least surprise imo.
[].slice(5, 100)
( I made the other comment like this longer, please use that one for context )