> On Nov 8, 2017, at 3:20 PM, Tino Heth via swift-evolution
> <swift-evolution@swift.org> 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?
You can built it out of map and filter:
func filterMap<T>(_ fn: (Element) -> U?) -> [U] {
return map(fn).filter { $0 != nil }.map { $0! }
}
John.
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution