forax at forax at
Thu Jul 13 21:41:16 UTC 2017

> De: "John Rose" <john.r.rose at>
> À: "Rémi Forax" <forax at>
> Cc: "joe darcy" <joe.darcy at>, "core-libs-dev"
> <core-libs-dev at>
> Envoyé: Jeudi 13 Juillet 2017 23:05:14
> Objet: Re: java.util.Pair

> On Jul 13, 2017, at 1:39 PM, Remi Forax < [ mailto:forax at |
> forax at ] > wrote:

>> Tuples are like an array of value types parameterized by a constant integer

> The homogeneous case is pretty simple; most of what you need is
> to allow a generic type to be parameterized by an integer. C++ templates
> have had that for a long time.

> What's harder is to have a two-step process for type instantiation:
> First, tell me the arity N, and second, for each position under that arity,
> tell me the type T[i], i<N. (And don't break type inference.) I think
> the most Java-like way to handle it might be type-functions that overload
> alongside generic types. But there are many, many ways to slice it.

or use a recursive definition like in Ceylon 
and the fact that value types are flatten to specify the rest, i.e a Tuple contains a T first and a Tuple rest. 

> C++ templates can express heterogeneous tuples:

> [ |
> ]

> Typically there is a small limit to C++ tuple size, because the underlying
> template implementation has its size set to the arity limit.

> — John


More information about the core-libs-dev mailing list