<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jun 7, 2017 at 7:35 PM, Adam Sharp via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The new smart key path feature is really lovely, and feels like a great addition to Swift.<br>
<br>
It seems like it might be straightforward to add overloads of `map` and `flatMap` to the standard library to make use of the new functionality:<br>
<br>
        let managers = flatOrganisation.managers<br>
        let allEmployees = Set(managers.flatMap(\.<wbr>directReports))<br>
        let employeeNames = Set(allEmployees.map(\.name))<br>
<br>
This feels like a really natural way of working with key paths in a functional style. It makes a lot of sense for collections, and possibly for Optional too (although as far as I can see optional chaining is more or less equivalent, and with more compact syntax).<br>
<br>
I’m hoping that this might be low-hanging fruit that could be considered for the Swift 4 release. I’d be happy to have a go at writing a proposal if there’s interest!<br>
<br>
–Adam<br></blockquote></div><br clear="all"><div>+1, it seems like a wonderful addition that would make a lot of code much shorter.<br></div><div><br></div>-- </div><div class="gmail_extra">Víctor Pimentel<div class="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr" style="font-size:12.8px"><div style="font-size:12.8px"></div></div></div></div></div></div></div></div></div></div></div></div>
</div></div>