Hello, My two cents: I feel uncomfortable with SequenceType.first since SequenceType clearly states that it may be destructed on iteration.
Compare : seq.generate().next() // clear that it may give another result if called twice seq.first // unclear that it may give another result if called twice Gwendal > Le 31 déc. 2015 à 00:57, Kevin Ballard via swift-evolution > <swift-evolution@swift.org> a écrit : > > It's sometimes useful to get the first element of a sequence. To that end I'd > like to propose > > extension SequenceType { > /// Returns the first element of `self`, or `nil` if `self` is empty. > /// - Complexity: O(1) > var first: Self.Generator.Element? { > var gen = generate() > return gen.next() > } > } > > I think it makes sense to add this property to the definition of SequenceType > as well, so various sequences can override it to avoid constructing a > generator. > > With this added to SequenceType, we can remove it from CollectionType, as the > behavior will be the same. > > -Kevin Ballard > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution