[swift-evolution] Proposal: Add SequenceType.first

Kevin Ballard kevin at sb.org
Wed Dec 30 17:57:06 CST 2015

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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151230/a9d92176/attachment.html>

More information about the swift-evolution mailing list