[swift-evolution] [Review] Add a Lazy flatMap for Sequences of Optionals
Dave Abrahams
dabrahams at apple.com
Tue Dec 15 20:29:26 CST 2015
First, I’d like to thank Oisin <https://github.com/oisdk> for his proposal. It’s great to see people filling in gaps.
> * What is your evaluation of the proposal?
The basic idea is solid and obviously appropriate. I have some quibbles with the proposed solution.
> * Is the problem being addressed significant enough to warrant a change to Swift?
Yes; it’s a non-uniformity, nonuniformities create complexity for users.
> * Does this proposal fit well with the feel and direction of Swift?
Yes.
> * How much effort did you put into your review? A glance, a quick reading, or an in-depth study?
A quick reading, but I’m deeply familiar with the domain, having written the lazy facilities we have in the stdlib.
I don’t see why the proposal states, “Optional probably wouldn't have a BidirectionalIndexType“. It seems to me that as a collection, an optional’s index should be random access, just like CollectionOfOne’s.
I’d like to suggest a different implementation approach that not only handles the bidirectional issue but also probably reduces the amount of code involved: create a generic CollectionOfZeroOrOne<T> that wraps a T?, and implement the x.flatmap(f) where f returns an optional as x.flatmap { CollectionOfZeroOrOne(f($0)) }
What do you think?
-Dave
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151215/9a10e128/attachment.html>
More information about the swift-evolution
mailing list