Trouble is that I don't want variadic generics without corresponding support from the type system which is untenable without HKTs (see last paragraph of proposal). C++'s variadic implementation of std::tuple is not elegant to my mind, and would have no place in a library I could think of writing.
~Robert Widmann 2016/05/04 0:47、Joe Groff <[email protected]> のメッセージ: > >> 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
