[swift-evolution] Feature proposal: Range operator with step

Dave Abrahams dabrahams at apple.com
Wed Apr 6 11:04:51 CDT 2016


on Tue Apr 05 2016, Xiaodi Wu <xiaodi.wu-AT-gmail.com> wrote:

> I think my opinion is largely the same. A range is not a stride, 

I don't think anyone on this thread has suggested they could be
considered the same... until just now.

> and sometimes we have use for striding backwards, a use case that
> shouldn't be penalized. +1 to the free function.
>
> I wouldn't mind, orthogonally, a way to express (a, b] as a range. It
> just seems like that should be of use, somewhere.

But that's not a strong enough reason to add it to the standard library.

> Finally, orthogonal to all of the above, I'm super eager to end error
> accumulation in floating point strides.

Looking forward to those results, too!

> On Tue, Apr 5, 2016 at 6:52 PM Erica Sadun via swift-evolution
> <swift-evolution at swift.org> wrote:
>
>         On Apr 5, 2016, at 5:22 PM, Dave Abrahams via swift-evolution
>         <swift-evolution at swift.org> wrote:
>         I don't think that's obvious at all, because 0 ≮ 10
>
>     Points brought up elsewhere:
>
>     * A range does not have direction, it is is an area of variation between
>     lower and upper limits.
>     * A range does not go from a larger amount to a smaller amount because it is
>     not a sequence
>     * Much of this problem goes away with striding (as Dave pointed out several
>     times, sorry Dave)
>
>     After consideration, I have been persuaded to the opinion that
>
>         stride(from: 0, to: -10, by: -1)
>
>     and 
>
>         (-9...0).reverse()
>
>     both represent the numbers -9, -8,...,0 better than any alternatives I have
>     offered. I still
>     prefer the stride version for intent and clarity.
>
>     That said, I also prefer my revised SE-0051 semantics for better
>     representing what strides will
>     attempt to do.
>
>     -- Erica
>
>     p.s. Thanks all for the patient explanations
>
>     _______________________________________________
>     swift-evolution mailing list
>     swift-evolution at swift.org
>     https://lists.swift.org/mailman/listinfo/swift-evolution
>

-- 
Dave


More information about the swift-evolution mailing list