[swift-evolution] [Review] SE-0065 A New Model for Collections and Indices
Tony Parker
anthony.parker at apple.com
Wed Apr 13 17:19:59 CDT 2016
> On Apr 13, 2016, at 12:57 PM, Dave Abrahams via swift-evolution <swift-evolution at swift.org> wrote:
>
>
> on Wed Apr 13 2016, Dave Abrahams <swift-evolution at swift.org> wrote:
>
>>> Reverse is the best opposite we have of advance, so it makes sense to
>>> me.
>>
>> Oh, I get it.
>>
>>> Or we could use retreat. =) There are other pairs of words that work
>>> as well, like “increment/decrement”.
>>
>> Yeah, unfortunately those carry an incorrect implication when the
>> indices are numbers, because, e.g. the collection might be offsetting
>> the number by 2 for each position. One could of course argue that using
>> numbers that way as indices was a bad design choice.
>>
>> I'll have to think about that idea again. We considered and rejected it
>> for a reason, but it might not be a really strong one. Thanks for
>> bringing it up.
>
> ...and having talked it over at lunch, now I remember why we rejected
> it: there's no good way to make a nonmutating version.
>
> let x = c.incremented(i) // reads like an assertion about the past
> let y = c.incrementing(i) // reads like it has side-effects and returns c, or
> // a new version of c
>
In fact, it does return a new version* of c; just like this:
let s2 = myString.appending(“foo”)
*new version: the result is related to the argument
This works out great:
let next = c.incrementing(first)
c.increment(&next)
- Tony
> APIs where the receiver returns a modified version of an argument don't
> lend themselves to verb forms.
>
> --
> Dave
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
More information about the swift-evolution
mailing list