I continue to favour mapSome, since it’s both literally and figuratively what 
it does, but appreciate that exposing the name of the Optional.some case isn’t 
to everyone’s taste.

> On Nov 15, 2017, at 12:55 PM, John McCall via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Hello, Swift Community!
> 
> The initial review of "SE-0187: Introduce Sequence.filterMap(_:)" ran through 
> yesterday, November 14th, 2017.  The proposal is available here:
> 
> https://github.com/apple/swift-evolution/blob/master/proposals/0187-introduce-filtermap.md
>  
> <https://github.com/apple/swift-evolution/blob/master/proposals/0187-introduce-filtermap.md>
> 
> There was a significant amount of discussion, and people came down with 
> reasonable arguments both for and against the proposal.  After reviewing that 
> feedback, the core team feels that the central question is whether Swift 
> benefits from overloading flatMap in this way.  There is a reasonable 
> argument that an Optional is a sort of container, and therefore it makes 
> sense to "flatten" that container into a surrounding container.  But Swift 
> has resisted applying that interpretation in its library design; for example, 
> you cannot directly iterate an Optional or append its contents to an Array.  
> In general, we feel that using different operations for working with 
> Optionals tends to make code easier to both write and understand, especially 
> given the existence of implicit optional promotion, which we cannot eliminate 
> or easily suppress based on the context.  On reflection, we think it was a 
> mistake to use the same name in the first place, and there is no better time 
> to fix a mistake than now.
> 
> While we accept that this will cause some amount of "code churn" for 
> developers when they adopt Swift 5, the required change is a simple rename 
> that should be painless to automatically migrate.  Of course, sample code on 
> the internet will become obsolete, but fix-its will easily update that code 
> if pasted into a project, and the samples themselves (once corrected) should 
> become clearer and easier to teach after this change, as is generally true 
> when overloading is removed.
> 
> Accordingly, SE-0187 is accepted, at least as far as not calling the 
> operation "flatMap".  We are re-opening the review until next Monday, 
> November 20th, 2017, in order to have a focused discussion about the new 
> name.  Names that seemed to gain some traction in the first review include:
> 
>   - filterMap, which has precedent in existing functional languages, as well 
> as some popular Swift libraries, but which some people view as confusing
> 
>   - compactMap, which builds off the precedent of "compact" in Ruby
> 
> But please feel free to suggest a name other than these.
> 
> Reviews
> 
> Reviews are an important part of the Swift evolution process.  All reviews 
> should be sent to the swift-evolution mailing list at
> 
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> or, if you would like to keep your feedback private, directly to me as the 
> review manager.  When replying, please try to keep the proposal link at the 
> top of the message:
> 
> Proposal link:
> 
> https://github.com/apple/swift-evolution/blob/master/proposals/0187-introduce-filtermap.md
>  
> <https://github.com/apple/swift-evolution/blob/master/proposals/0187-introduce-filtermap.md>
> Reply text
> Other replies
> What goes into a review?
> 
> The goal of the review process is to improve the proposal under review 
> through constructive criticism and, eventually, determine the direction of 
> Swift.
> 
> When writing your review, here are some questions you might want to answer in 
> your review:
> 
>       • What is your evaluation of the proposal?
>       • Is the problem being addressed significant enough to warrant a change 
> to Swift?
>       • Does this proposal fit well with the feel and direction of Swift?
>       • If you have used other languages or libraries with a similar feature, 
> how do you feel that this proposal compares to those?
>       • How much effort did you put into your review? A glance, a quick 
> reading, or an in-depth study?
> 
> More information about the Swift evolution process is available at:
> 
> https://github.com/apple/swift-evolution/blob/master/process.md 
> <https://github.com/apple/swift-evolution/blob/master/process.md>
> 
> As always, thank you for contributing to the evolution of Swift.
> 
> John McCall
> Review Manager
> _______________________________________________
> 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

Reply via email to