[swift-evolution] Tuple conversion and type composition

Andrew Bennett cacoyi at gmail.com
Sat Feb 6 16:41:46 CST 2016

Thanks Tino, it would be good to come up with some alternatives for +.

I was initially thinking `(Int,Int) (Int,Int)` without operators. However I
think this could potentially be a mistake. I like + as it's familiar with
array operators.

As for the prevalence of tuples in the language, every function and value
in Swift has a tuple in it. The associated values in an enum are a tuple.
They are everywhere.

For some more examples have a look at the linked proposal :)

On Sun, Jan 31, 2016 at 11:28 PM, Tino Heth <2th at gmx.de> wrote:

> I'd like a a way to concatenate tuple types together:
> typealias ABCD = (A,B)+(C,D) // Same as (A,B,C,D)
> I don't like the use of "+" for concatenation, but giving more power to
> tuples would be neat… you just need to find examples with convincing
> motivation ;-)
> Obviously, the value of tuple-operation increases with the prevalence of
> tuples in language and libraries, so I wouldn't be surprised if their
> importance rises in the future (and maybe we can think of nice ways to
> combine tuple-related ideas).
> Also a way to allow tuples to be converted to other tuples that are the
> same when flattened:
> (a,(b,c),d) as ((a,b),(c,d))
> It would be cool if such a concept ("compiler, please check if those two
> types have a compatible memory-layout, and if that is the case, let me use
> them interchangeable when I tell you to do so) could be extended to structs
> — that could solve the problem of different implementations of fundamental
> types nicely.
> That leads me to an unrelated thought:
> It seems to me there is a duality between methods and closures on one
> side, and structs and tuples on the other — tuples feel very much like
> anonymous structs (restricted by the fact that you cannot add methods like
> custom getters & setters). It's not related to you proposal, but I wonder
> if there are implications visible from this point of view...
> Tino
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160207/f34cc54f/attachment.html>

More information about the swift-evolution mailing list