on Tue Apr 05 2016, Howard Lovatt <swift-evolution@swift.org> wrote:

> Yes I know what you are saying and I am suggesting changing that so that:
>
> (0 ... -9) and (0 ..< -10)
>
> Are both empty ranges rather than errors because they implicitly have a 'by' 
> of
> 1. 

What are the startIndex and endIndex of these ranges when viewed as
Collections?  Remember, for an empty collection startIndex == endIndex
is an invariant.

>
> On Wednesday, 6 April 2016, Xiaodi Wu
> <xiaodi...@gmail.com> wrote:
>
>     Howard, the point I am raising is that `0...(-9)` is not valid Swift 
> because
>     the first, "lower" bound is enforced to be less than the second, "upper"
>     bound.
>
>     The problem is that with that restriction certain types of half-open
>     intervals, namely those where the lower bound is the one being excluded,
>     cannot be represented as a Range either currently or in Dave A's branch.
>
>     On Tue, Apr 5, 2016 at 3:30 PM Howard Lovatt
>     <howard.lov...@gmail.com> wrote:
>
>     I much prefer (0 ... -9).by(-1) and (0 ..< -10).by(-1)
>
>         On Wednesday, 6 April 2016, Dave Abrahams via swift-evolution
>         <swift-evolution@swift.org> wrote:
>
>             on Tue Apr 05 2016, Xiaodi Wu <xiaodi.wu-AT-gmail.com> wrote:
>
>             > On Mon, Apr 4, 2016 at 1:22 PM, Dave Abrahams
>             <dabrah...@apple.com> wrote:
>             >>
>             >> on Sat Apr 02 2016, Xiaodi Wu <xiaodi.wu-AT-gmail.com> wrote:
>             >>
>             >>> [snip]
>             >>>
>             >>> Not included:
>             >>> 1. I know Ranges are in flux, so I've held off on extending
>             Range with
>             >>> a striding(by:) method in this proof-of-concept.
>             >>
>             >> They're not in flux, except for not having been reviewed yet;
>             they are
>             >> settled in the swift-3-indexing-model branch.
>             >
>             > Did not know that. Will have to study what's there in more 
> detail.
>             >
>             >>> 2. No attempt at the suggested stride(from:to:steps:) quite 
> yet.
>             >>
>             >> #1 and #2 are mutually exclusive; we prefer #1 as it removes
>             questions
>             >> about the meaning of "to" or "through."
>             >
>             > I wasn't aware that was the thinking. Limiting strides to
>             > `striding(by:)` removes the ability to express `stride(from: 0,
>             to:
>             > -10, by: -1)`
>
>             IMO this:
>
>             (-9...0).reverse()
>
>             is better than
>
>             stride(from: 0, to: -10, by: -1)
>
>             What do you think?
>
>             --
>             Dave
>
>         _______________________________________________
>             swift-evolution mailing list
>             swift-evolution@swift.org
>             https://lists.swift.org/mailman/listinfo/swift-evolution
>
>         -- 
>         -- Howard.

-- 
Dave

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to