[Haskell-cafe] history of tuples vs pairs

David Roundy droundy at darcs.net
Wed Jun 25 16:35:34 EDT 2008

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

More information about the Haskell-Cafe mailing list