> On May 3, 2016, at 9:13 PM, Developer via swift-evolution 
> <[email protected]> wrote:
> 
> I’ve been contemplating this idea for a while now, mostly because I think 
> it’s a very important feature, but also because I can’t find a single example 
> of a programming language getting it completely right.  In Swift, the motif 
> of tuples throughout the language would lead one to think that they have some 
> kind of special status in the language.  Yet, tuples are an opaque concept 
> exposed by the compiler to the end user with no opportunity for extension.  
> Languages that have tried to expose tuples to their users for extension have 
> done so in less than ideal ways (see Tuple1-Tuple22 Scala, Haskell’s hard 
> limit on tuples, Rust’s limitations for std::tuple), yet each implementation 
> has something to offer a possible Swift implementation.  I see only one 
> course of action that will bring us extensible tuples in a manner that is 
> compatible with Swift and its overall design philosophy.  To that end, I have 
> drawn up a draft proposal for generic tuple extensions that I will submit to 
> swift-evolution shortly.  

Tuples are a special case of a more general shortcoming, which is that you 
can't extend *any* of the builtin structural types, not only tuples but 
metatypes, function types, and existentials. I don't see any reason to address 
this for tuples only. In the particular case of tuples, I think you really want 
variadic generic parameters too, to be able to extend them to arbitrary arities 
without having to waste space generating boilerplate for a bunch of fixed 
arities. Both structural type extensions and variadic generics are covered in 
Doug's omnibus generics roadmap: 
https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160229/011666.html

-Joe
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to