[swift-evolution] Tuple accessor shorthand

Alexandre Lopoukhine superlopuh at gmail.com
Fri Dec 18 09:44:02 CST 2015


Oh, you’re right. The first options I considered were either a global function or a new Tuple class/struct with a bunch of these methods built in, which seemed less elegant but I guess are now the only possibility.

— Sasha

> On 18 Dec 2015, at 16:36, Félix Cloutier <felixcca at yahoo.ca> wrote:
> 
> To consider: the empty tuple expression is currently legal and represents the void value.
> 
>> Le 18 déc. 2015 à 10:30:57, Alexandre Lopoukhine via swift-evolution <swift-evolution at swift.org> a écrit :
>> 
>> 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
>> 
>> pairArray.map({$0.0})
>> 
>> into
>> 
>> pairArray.map(first)
>> 
>> 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:
>> 
>> pairArray.map(().0)
>> 
>> 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
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 



More information about the swift-evolution mailing list