[swift-evolution] Tuple accessor shorthand

Alexandre Lopoukhine superlopuh at gmail.com
Fri Dec 18 09:30:57 CST 2015

Hello everyone,

To tie into the discussion of shorthands for “map", here’s something that I think is worth considering:

Skipping the motivation (mostly, I’m on a mission to eliminate the $ character in my functional code), here’s a function definition:

func first<A,B>(tuple: (A,B)) -> A {
    return tuple.0

Having functions like this transforms




This is not ideal, as it pollutes the global space, and there would need to be tons of those for various tuple sizes.

Here’s an alternative:


I think that this makes the intent pretty clear, as well as non-conflicting with anything in the language.

What do you all think?

— Sasha

More information about the swift-evolution mailing list