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

Reply via email to