“Flatten”, in the context here (flattening a Sequence of Optionals), only makes 
sense if you consider Optional as a sequence of zero or one elements. While 
such a sequence does act very similarly to an Optional, the fact remains that 
Optional is not a Sequence, and is generally not treated as one by any other 
part of the language. It fundamentally makes no more sense to “flatten" a 
Sequence of Optionals than it does to “flatten" an Optional of a Sequence.

In my mind, filter makes sense because I’m filtering out some of the results of 
the transformation operation before they get put into the resulting array. It’s 
a different kind of operation; not a map, but a filterMap. (Maybe filteringMap 
would be clearer?) The operation is not “map into a new array, then filter”. 
It’s “run this transformation for each item. If it produces something, keep 
it.” There’s no filter or compact that runs on the entire collection.

-BJ





> On Nov 14, 2017, at 7:50 AM, Tino Heth via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> 
>> Yeah but it seems clear from the return type so I am not sure that much 
>> confusion would really exist.
> 
> 
> Afaics, there already is lots of confusion — that’s the reason for me to 
> write a sequence of posts in this topic, instead of an Optional ;-)
> The word „flatten“ is a quite honest description, so I wonder why words like 
> filter, remove, ignoring or skipping should be used instead.
> 
> „Compact“ would be less irritating, but I could imagine that it indicates 
> something like eliminating repeated occurrences.
> 
> Tino
> 
> (I’m quite close to attach a hand-drawn illustration of the flatMap process — 
> I don’t think you want that to happen ;-)
> 
> _______________________________________________
> 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