because it's meant to be a more functional language. if slicing an array out of bounds threw an error it would be java.
[].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(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)
^-- *THIS* either returns nil or throws an exception.( I made the other comment like this longer, please use that one for context )