In mathematics, an n-tuple is a collection of objects whose order matters.

The n can be replaced by a specific number, thus one can for example say a quaternion can be represented as a 4-tuple. A 2-tuple is an ordered pair; a 3-tuple is a triple or triplet; further constructions are possible, such as octuple, but many mathematicians find it quicker to write "8-tuple", even if still pronouncing "octuple".

A general n-tuple is: (a1,a2,...,an)= (b1,b2,...,bn) iff a1=b1, a2=b2 and so on.

Formally, an n-tuple can be defined in terms of sets as either (a1,a2,...,an)= {a1,{a1,a2},{a1,a2,a3},...,{a1,a2,...an}} or as an inductive definition:

  1. a 1-tuple (a1) is just a1;
  2. if x is an n-tuple, then (x,an+1) (i.e. {x,{x,an+1}}) is an (n+1)-tuple.

It is fairly easy to show that either definition implies the property given above. However, the sets generated look very different.

(However, what happens when ai equals ai+1?)


Many computer programming languages support tuples as a data type, either for objects of fixed types, or as a collection of objects of any type.

The Lisp programming language originally used the ordered pair abstraction to create all of its n-tuple and list structures, similarly to the inductive definition above.


In the field of relational databases, a tuple is a row in a relation (table). An n-tuple is a row with n columns. It is important not to confuse an n-tuple with n tuples.