From: matz@... Date: 2019-09-04T03:44:28+00:00 Subject: [ruby-core:94771] [Ruby master Feature#16141] Change in the array[x, y] notation. Issue #16141 has been updated by matz (Yukihiro Matsumoto). Status changed from Open to Closed The `y` in `ary[x, y]` means the length of resulting subarray, not an index. There's no subarray of negative length. Matz. ---------------------------------------- Feature #16141: Change in the array[x,y] notation. https://bugs.ruby-lang.org/issues/16141#change-81382 * Author: professeurx (Fran�oys Proulx) * Status: Closed * Priority: Normal * Assignee: * Target version: ---------------------------------------- It not a bug, but it's an oddity of the language. ``` ruby array_four = %w[a b c d e f g] p array_four[1,3] p array_four[-1,3] p array_four[3,3] p array_four[-3,2] p array_four[-3, -2] ["b", "c", "d"] ["g"] ["d", "e", "f"] ["e", "f"] nil ``` p array_four[-3, -2] do not follow the principal of the least surprise! the logical output would be ["d", "e"] The way i see this p array_four[-3,2] # take 3 step from the end and take 2 elements incrementally and p array_four[-3,-2] # take 3 step from the end and take 2 elements decrementally The change wouldn't affect the retro-compatibility of the language. -- https://bugs.ruby-lang.org/ Unsubscribe: