From: shevegen@... Date: 2018-09-09T09:19:10+00:00 Subject: [ruby-core:88917] [Ruby trunk Feature#15092] Provide step count in Range constructor Issue #15092 has been updated by shevegen (Robert A. Heiler). > Wouldn't the result be [1, 4, 7, 10, 13]? Off-by-one is ... common. :) A bit more on topic, Float::INFINITY is quite long. Could we not use :infinity to refer to it in some methods or something shorter? I think ruby users should not need to have to know the leading "namespace" (Float) in order to refer to a concept of infinity in ruby. ---------------------------------------- Feature #15092: Provide step count in Range constructor https://bugs.ruby-lang.org/issues/15092#change-73954 * Author: v0dro (Sameer Deshmukh) * Status: Feedback * Priority: Normal * Assignee: * Target version: ---------------------------------------- I would like to propose making changes to the Range constructor so that a user can specify a `step` count along with `start` and `stop`. Since Ruby 2.6 will introduce a `step` property in Ranges anyway I think this will be a useful addition. Here's my reasons for the changes: When creating software libraries for numerical computing, it is common to query the data container for values in a particular range at some given steps. For example, say I have the following NArray object: ~~~ ruby a = NArray.new([1,2,3,4,5,6,7,8,9,10,11,12]) ~~~ And I want the values `1`, `4`, `7`, `10` and `12`, I can simply specify a Range like this: ~~~ ruby r = Range.new 0, Float::INFINITY, 3 # start, stop (upto the end), step a[r] # => NArray([1, 4, 7, 10, 12]) ~~~ This can possibly also be extended to `Array#[]` so that users can get ranges of values at steps without much worry. -- https://bugs.ruby-lang.org/ Unsubscribe: