User Contributed Dictionary
Noun
Synonyms
- (in set theory): n-tuple (when the sequence contains n terms), ordered pair (when the sequence contains exactly two terms), triple or triplet (when the sequence contains exactly three terms)
Related terms
Translations
in set theory
- Chinese (Mandarin): 多元组 (pinyin: duoyuanzu)
- Czech: uspořádaná n-tice
- Finnish: monikko
- French: n-uplet
- German: Tupel
row (record) in a database
Extensive Definition
In mathematics, a tuple is a
sequence (also known as
an "ordered list") of values, called the components of the tuple.
These components can be any kind of mathematical objects, where
each component of a tuple is a value of a specified type. A tuple
containing n components is known as an "n-tuple". For example, the
4-tuple (or "quadruple"), with components of respective types
PERSON, DAY, MONTH and YEAR, could be used to record that a certain
person was born on a certain day of a certain month of a certain
year.
Tuples are used to describe mathematical objects
that consist of specified components. For example, a directed
graph is defined as a tuple (V, E) where V is the set of nodes
and E is a subset of V × V that denotes the edges. The type of the
first object is "set of nodes" and the type of the second is "set
of edges".
Names of tuples
The term originated as an abstraction of the sequence: single, double, triple, quadruple, quintuple, n-tuple. A tuple of length n is usually described as an n-tuple. A 2-tuple is called a pair; a 3-tuple is a triple or triplet. The n can be any nonnegative integer. For example, a complex number can be represented as a 2-tuple, and a quaternion can be represented as a 4-tuple. Further constructed names are possible, such as octuple, but many mathematicians find it quicker to write "8-tuple", even if still pronouncing this "octuple".Although the word tuple was taken as an apparent
suffix of some of the names for tuples of specific length, such as
quintuple, this is based on a false analysis. The word quintuple
comes from Latin quintuplex,
which should be analyzed as quintu-plex, in which the suffix plex
comes from plicare "to fold", from which also English ply (and
hence also the calque
fivefold).
Names for tuples of specific length
Formal definitions
The main properties that distinguish a tuple from, for example, a set are that- it can contain an object more than once;
- the objects appear in a certain order;
- it has finite size.
Note that (1) distinguishes it from an ordered set
and that (2) distinguishes it from a multiset. This is often
formalized by giving the following rule for the identity of two
n-tuples:
- (a1, a2, …,an) = (b1, b2, …, bn) ↔ a1 = b1, a2 = b2, …, an = bn.
Since a n-tuple is indexed by the numbers 1…n (or
0…n-1), it can be regarded as a function
from a subset of ℕ:
- (a1, a2, …,an) ≡ fa: ℕn → A: i ↦ ai.
Another way of formalizing tuples is by mapping
them to more primitive constructs in set theory
such as ordered
pairs. For example, an n-tuple (with n > 2) can be defined
as an ordered pair
of its first entry and an (n−1)-tuple containing the
remaining entries:
- (a1, a2, …, an) = (a1, (a2, …, an)).
Using the usual set-theoretic definition of an
ordered
pair and letting the empty set represent the empty tuple, this
results in the following inductive definition:
- the 0-tuple (i.e. the empty tuple) is represented by
- if x is an n-tuple then is an (n + 1)-tuple.
Using this definition, (1,2,2) would be
- (1,(2,(2,))) = (1,(2, )) = (1, ) =
There is an important similarity here with the
way Lisp
originally used the ordered pair abstraction to inductively create
all of its n-tuple and list structures:
- a special symbol NIL represents the empty list;
- if X is a list and A an arbitrary value then the pair (A X) represents a list with the head (i.e. first element) A and the tail (i.e. the remainder of the list without the head) X.
Usage in computer science
In computer science, tuple has three distinct meanings. Typically in functional and some other programming languages, a tuple is a data object that holds several objects, similar to a mathematical tuple.The
Eiffel programming language has a built-in notion of tuple. The
type
TUPLE [X, Y, Z]
has, as its values, tuples of three or more
elements, of which the first is of type X, the second of type Y and
the third of type Z. This can also be written with tags:
TUPLE [tag1: X, tag2: Y, tag3: Z]
without affecting the resulting type. Such a
tuple that has labels for its fields is usually called a record.
An actual tuple, corresponding to this type, is written in bracket
notation, for example
[x1, y1, z1]
with x1 of type X etc. If t is such a tuple, its
elements can be accessed, in the form using tags, as t.tag1 etc.;
they can also be set in the same way, as in t.tag2 := y2 which
replaces the second element, of type Y, by y2. A value of type
TUPLE [X, Y, Z] can be assigned to a variable of the same type but
also to one of type TUPLE [X, Y], or TUPLE [X], or just TUPLE which
covers all tuples. This is thanks to the definition that TUPLE [X,
Y], for example, covers sequences of at least (rather than exactly)
two elements, with the first two of the types given. Tuple types
fit well in an object-oriented context, where they save writing a
class when all you need is simple sequences of values with
associated access and set mechanisms for each field.
The
Python programming language also uses the tuple as a standard
sequence data type. The difference with other Python sequence types
is that the tuple is immutable, once created objects inside the
tuple may not be altered or have their position changed.
Additonaly, objects may not be added or removed from a tuple after
it has been created.
>>> t = (12345, 54321, 'hello!')
>>> t[0] 12345 >>> del t[0] Traceback (most
recent call last): File "", line 1, in TypeError: 'tuple' object
doesn't support item deletion
Information Modeling
With inherent Name/Value pair properties, along
with a structured and ordered nature, the term 'tuple' extends
readily to use in Information Modeling and Database
Definition.
For example, XML-Tuples represent Name/Value
tuple structures. The following is an example of an XML-Tuple
Value
Field names
In some languages, and especially in database
theory, a tuple is defined as a finite function that maps field
names to a certain value. Its purpose is the same as in
mathematics, namely to indicate that a certain entity or object
consists of certain components and/or has certain properties, but
here these components are identified by a unique field name and not
by a position, which often leads to a more user-friendly notation.
The general term for this construct is an associative
array; other programming languages have yet other names for the
concept.
A small example of a tuple would be:
- ( player : "Harry", score : 25 )
- ( score : 25, player : "Harry" )
In programming languages, tuples are used to form
data structures. For example, the following could be a structure
that represents a node in a doubly linked
list:
- ( value : 16, previous-node : 1174782, next-node : 1174791 )
See also
External links
tuple in Czech: Uspořádaná n-tice
tuple in German: Tupel
tuple in Estonian: N-korteež
tuple in Spanish: Tupla
tuple in Esperanto: Opo
tuple in French: N-uplet
tuple in Croatian: N-torka
tuple in Italian: Tupla
tuple in Latvian: Kortežs
tuple in Dutch: Tupel
tuple in Japanese: タプル
tuple in Korean: 튜플
tuple in Polish: Krotka
tuple in Portuguese: Enupla
tuple in Russian: Кортеж
tuple in Simple English: Tuple
tuple in Swedish: Tupel
tuple in Ukrainian: Кортеж
tuple in Chinese: 多元组