Project

General

Profile

Actions

Feature #9049

open

Shorthands (a:b, *) for inclusive indexing

Added by mohawkjohn (John Woods) over 10 years ago. Updated about 6 years ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:58007]

Description

For NMatrix, we've implemented a range shorthand which relies on Hashes: m[1=>3, 2=>4], for example, which returns rows 1 through 3 inclusive of columns 2 through 4 (also inclusive). The original goal was to be able to do m[1:3, 2:4] using the new hash notation, but the new hash notation requires that the key be a symbol — it won't accept an integer.

Whether through the hash interface or not, it'd be lovely if there were a shorthand for slicing matrices (and even Ruby Arrays) using colon. This could just be an alternate syntax for ranges, also — which might make more sense.

The other related shorthand we'd love to find a way to implement is the all-inclusive shorthand. It gets to be a pain to type n[0...n.shape[0], 1...3] to get a submatrix (a slice), and it's really difficult to read. As a work-around, we currently use the :* symbol: n[:*, 1...3]. But it'd be simpler if there were a way to use a splat operator without an operand as a function argument. It might be a special case where the * is treated as a :* automatically. But this edge case might cause confusion with error messages when users make syntax errors elsewhere.

The colon shorthand is the highest priority for us.


Related issues 1 (0 open1 closed)

Related to Ruby master - Feature #14044: Introduce a new attribute `step` in RangeRejectedmatz (Yukihiro Matsumoto)Actions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0