Project

General

Profile

Actions

Feature #16141

closed

Change in the array[x,y] notation.

Added by professeurx (Françoys Proulx) over 4 years ago. Updated over 4 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:94769]

Description

It not a bug, but it's an oddity of the language.

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.

Actions

Also available in: Atom PDF

Like0
Like0Like0