I understand the sentiment, but the language has so much sugar over Optional 
that I wouldn’t be surprised if even seasoned developers didn't know the name 
of Optional’s cases.

> On 15 Nov 2017, at 22:15, Ben Cohen via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> 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 <mailto: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 <mailto: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

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to