> On Nov 8, 2017, at 9:29 PM, Paul Cantrell via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> The problem in the Doodads example is that the name flatMap is used to 
> identify two distinct intents: concatenating arrays and filtering nils. One 
> can argue that those two operations are, in some lofty abstract sense, if you 
> squint, two instances of some more general pattern — but I don’t think it’s 
> fair to say that they represent the same intent. These separate intents 
> deserve separate names.

I think that's the crux of it.

I think we might be better off renaming the maps on `Optional` and then naming 
the `Sequence` operation analogously. For instance:

        Optional.map(transform) => Optional.pass(to: transform)
        Optional.flatMap(transform) => Optional.chain(to: transform)

Then this would be a natural choice:

        Sequence.flatMap(transform) => Sequence.chainMap(transform)

Alternatively, we could think of a name for "removing optionality from a 
sequence" and then use that name. For example, borrowing a name from Ruby:

        (Sequence where Element == T?).compact()
        Sequence.compactMap(transform)

Actually, "unwrapped" might be a better name than "compact", since we use that 
term.

-- 
Brent Royal-Gordon
Architechies

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

Reply via email to