I would suggest an alternative; changing Range so that it is indexed like an array, an Int from 0 to count - 1. Such that aRange[index] is defined as start + index * stride. This will eliminate the problems with enumerate. A Range's generic type would be constrained to be an Arithmetic type, see extended floating point proposal.
On Saturday, 16 April 2016, Andrew Bennett via swift-evolution < swift-evolution@swift.org> wrote: > I support a fixed version. I don't think that's mutually exclusive with > removing enumerate. > > This thread seems to be a result of a misused API, so I think it's > necessary to make it obvious when that API changes. I think we'd want a > period of deprecation with both enumerate() and a new (hopefully more clear > and concise) method, so that people can fix their code. > > I think this would be a good change: > > + @available(*, deprecated, message="it will be removed in Swift 3") > public func enumerate() -> EnumerateSequence<Self> > + public func indexed() -> Zip2Sequence<Self.Index,Self> { return > zip(self.indices, self) } > > > > On Sat, Apr 16, 2016 at 11:12 AM, Charles Srstka <cocoa...@charlessoft.com > <javascript:_e(%7B%7D,'cvml','cocoa...@charlessoft.com');>> wrote: > >> On Apr 15, 2016, at 8:09 PM, Andrew Bennett via swift-evolution < >> swift-evolution@swift.org >> <javascript:_e(%7B%7D,'cvml','swift-evolution@swift.org');>> wrote: >> >> >> I'm in support of a method of getting a sequence of (Index,Value) pairs >> (as you know from the other thread). I think I'm leaning toward option >> three if it's equivalent to `zip(self.indices, self)`, ideally as a concise >> property like keys/values on a Dictionary. >> >> I've been using zip in production. I presumed enumerate was intended for >> enumerating indices, and that it had just been forgotten when the slice >> changes went through. I'm in favour of removing it. >> >> >> Instead of removing it, how about just fixing it so that it returns the >> proper indexes rather than arbitrary numbers? >> >> Charles >> >> > -- -- Howard.
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution