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