[swift-evolution] Proposal: Implement == and < for tuples where possible, up to some high arity

Chris Lattner clattner at apple.com
Mon Dec 7 18:06:09 CST 2015


> On Dec 7, 2015, at 3:04 PM, Jacob Bandes-Storch <jtbandes at gmail.com> wrote:
> 
> On Mon, Dec 7, 2015 at 3:01 PM, Chris Lattner via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
> On Dec 7, 2015, at 12:01 PM, Dmitri Gribenko via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> I personally don't see a point in going as high as 12 tuple elements.  About 4 or 5 makes sense to me.  Given that Swift does not have variadic generics right now, these long tuples have to be defined by someone manually.  If one is defining a tuple that is that long, I'd argue that they should be using a custom struct instead.
> 
> I tend to agree with Dmitri here.  Independent of the code size concern, what is the expected use-case for > 4 element tuples?
> 
> -Chris
> 
> 
> On the contrary, I think >4-element-tuples are useful exactly *for* the case of custom structs. You wouldn't want the tuples themselves to be part of your API, but if you have a custom struct with 4+ Comparable fields, you can implement its < operator as simply "return (a1,b1,c1,d1,e1) < (a2,b2,c2,d2,e2)”.

Sure, or:
   return (a1,b1,(c1,d1,e1)) < (a2,b2,(c2,d2,e2))

:-)

-Chris


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151207/601a52f8/attachment.html>


More information about the swift-evolution mailing list