On 07/10/2010 19:45, Andrei Alexandrescu wrote:
On 10/7/10 12:45 CDT, Michel Fortin wrote:
On 2010-10-07 12:34:33 -0400, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> said:

My suggestion is that we deprecate TypeTuple and we call it AliasTuple
because that's really what it is - it's a tuple of stuff that can be
passed in as an alias parameter.

Personally, I like D built-in tuples; they're so simple. At the core
they're just a group of "things".

They are terrible, awful, despiteful. They don't compose with anything;
you can't have an array of tuples or a hash of tuples. They can't be
returned a from a function. They spread their legs in function parameter
lists without any control (flattening is bad, right?) Built-in tuples
are the pitts. The one thing they're good for is as a back-end for
std.typecons.Tuple.


In fairness, my impression is they were not meant to compose with anything or be returned with a function. They were created not as a first class type, but as a metaprogramming construct, whose purpose was *exactly* for capturing parameters for templates or functions and expanding them automatically. They were a great boon for D's metaprogramming capabilities. As such they were not meant to emulate tuples as in Python's tuples, or any record type in general. But because they could partially be used as such, and because they share the same name, a lot of comparisons are made, which results in this idea that D's tuples are inferior.

This is not saying it would not be useful to have functionality like Python's tuples.

--
Bruno Medeiros - Software Engineer

Reply via email to