
On Wed, Jun 25, 2008 at 02:24:57PM -0400, Brent Yorgey wrote:
On Wed, Jun 25, 2008 at 07:50:08PM +0200, Niels Aan de Brugh wrote:
On Wed, 2008-06-25 at 16:50 +0200, Conal Elliott wrote:
I have a foggy memory that early ML had only binary pairing, nesting for n-tuples. Can anyone confirm this memory. If so, does anyone remember the rationale for going to n-tuples? Performance, perhaps?
???What is the difference between a list build up of Cons and a "tuple" made out of pairs? I think the latter wouldn't really add anything new.
The difference is that all the elements of a list must be the same type, whereas nested tuples could have elements of any type. For example,
(True, (6, 'c')) :: (Bool, (Int, Char))
and there is no corresponding three-element list. However, you're right in noting the similarity between lists and nested tuples -- in fact, this is exactly how lists are implemented in lisp (which is where we get the tern 'cons').
The other difference is that nested tuples have the number of elements specified in the type, while lists do not. -- David Roundy Department of Physics Oregon State University