> 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
