On Wed, Nov 8, 2017, at 02:29 PM, Max Moiseev via swift-evolution wrote:> 
> 
>> On Nov 8, 2017, at 12:20 PM, Tino Heth <2...@gmx.de> wrote:
>> 
>> 
>>> This is a wonderful example! But it’s an argument for a different
>>> discussion (of general usefulness of implicit optional promotion).
>>> Thanks to the optional promotion, what the closure returns is not
>>> nil, but instead is .some(nil), and that is not filtered out.>> My point 
>>> is: The proposed filterMap isn’t a combination of map and
>> filter at all — or can you build it just out of map & filter, like
>> flatMap is constructed from map & flatten?> 
>> https://github.com/apple/swift/blob/master/stdlib/public/core/FlatMap.swift#L49>
>>  
> It *is* a combination of map and filter. It is purely for performance
> we don’t do the same thing on any Sequence, because that will allocate
> a temporary array or two.
Well, that certainly explains the nasty return type. I rather wish we
had a LazyFlatMapSequence type rather than using map(…).filter(…).map(…)
if for no other reason than it would produce a return type that's easier
to work with.
-Kevin Ballard

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

Reply via email to