数学において、タプルとは、有限の列または順序付きリスト、あるいはより一般的には数学的オブジェクトであり、これらはタプルの要素と呼ばれます。nタプルはn個の要素を持つタプルで、nは負でない整数です。0 タプルは 1 つだけ存在し、空タプルと呼ばれます。1 タプルと 2 タプルは、それぞれシングルトンと順序付きペアと呼ばれます。 「無限タプル」という用語は、 「無限列」を指すために使用されることもあります。
タプルは通常、要素を括弧「()」で囲み、カンマで区切って記述されます。例えば、(2, 7, 4, 1, 7) は5つの要素を持つタプルを表します。他の種類の括弧が使用される場合もありますが、意味が異なる場合があります。[ a ]
nタプルは、n個の最初の自然数の集合を定義域とする関数の像として正式に定義できます。タプルは、順序付きペアから始まる再帰によって、順序付きペアから定義することもできます。実際、nタプルは、その( n − 1)番目の要素とn番目の要素の順序付きペアと同一視できます。たとえば、 です。 
コンピュータサイエンスにおいて、タプルは様々な形式で存在します。ほとんどの型付き関数型プログラミング言語は、タプルを積型として直接実装しており、[ 1 ]代数データ型、パターンマッチング、構造化代入と密接に関連しています。[ 2 ]多くのプログラミング言語は、ラベルでアクセスできる順序なし要素を備えたレコード型と呼ばれるタプルの代替手段を提供しています。 [ 3 ]いくつかのプログラミング言語では、 Cの構造体やHaskellのレコードのように、順序付きタプル積型と順序なしレコード型を1つの構造に組み合わせています。リレーショナルデータベースでは、行(レコード)を正式にタプルとして識別する場合があります。
タプルは、リレーショナル代数、リソース記述フレームワーク(RDF)を使ったセマンティックウェブのプログラミング、言語学[ 4 ] 、哲学[ 5 ]などでも使用されます。
語源
この用語は、シングル、カップル/ダブル、トリプル、クアドラプル、クインタプル、セクスタプル、セプタプル、オクタプル、...、nタプル、... というシーケンスを抽象化して作成されました。接頭辞は数字のラテン語名から取られています。一意の 0 タプルは、ヌル タプルまたは空のタプルと呼ばれます。1 タプルはシングル(またはシングルトン)、2 タプルは順序付きペアまたはカップル、3 タプルはトリプル(またはトリプレット) と呼ばれます。数値nは任意の非負の整数です。たとえば、複素数は2 タプルの実数として、四元数は 4 タプルとして、八元数は 8 タプルとして、十元数は16 タプルとして表すことができます。
これらの用法では「-tuple」を接尾辞として扱っていますが、元々の接尾辞は「triple」(三重)や「decuple」(十重)のように 「-ple」でした。これは中世ラテン語の「plus」(「より多く」の意)に由来し、ギリシャ語の「-πλοῦς」と関連しています。この語は、古典期および後期古代の「-plex」(「折り畳まれた」の意)(「duplex」など)に取って代わりました。[ 6 ] [ b ]
プロパティ
2つのn組の同一性に関する一般的な規則は
の場合に限ります 。
したがって、タプルにはセットと区別するプロパティがあります。
- タプルには同じ要素の複数のインスタンスが含まれることがあるため、tuple ; ではなく set です。


- タプルの要素は順序付けられます: タプル、ただし セット。


- タプルには有限数の要素がありますが、セットまたはマルチセットには無限の数の要素がある場合があります。
定義
前のセクションで説明したプロパティを与えるタプルの定義はいくつかあります。
関数としてのタプル
-組は空関数と同一視される。-組は射影関数と同一視される。




ドメイン付き

そしてコドメイン

それは次のよう に定義される

つまり、関数は次のように定義されます 

その場合、平等

必ずしも成立する。
- 順序付きペアの集合としてのタプル
関数は一般的にグラフ、つまり順序付き対の集合によって識別されます。実際、多くの著者はグラフを関数の定義として用いています。この「関数」の定義を用いると、上記の関数は次のように定義できます。 

入れ子になった順序付きペアとしてのタプル
集合論においてタプルをモデル化するもう一つの方法は、入れ子になった順序付きペアとしてモデル化することです。このアプローチでは、順序付きペアの概念が既に定義されていることを前提としています。
- 0 タプル (つまり空のタプル) は空セットによって表されます。

- n > 0のnタプルは、その最初のエントリと( n − 1)タプル ( n > 1のときの残りのエントリを含む)の順序付きペアとして定義できます。

この定義は( n −1)タプルに再帰的に適用できる。

たとえば次のようになります。

この定義のバリエーションでは、反対側から要素を「剥がし」始めます。
- 0 タプルは空集合です。

- n > 0 の場合:

この定義は再帰的に適用できます。

たとえば次のようになります。

入れ子になったセットとしてのタプル
クラトフスキーの順序付きペアの表現を使用すると、上記の2番目の定義は純粋集合論の観点から再定式化できます。
- 0 タプル (つまり空のタプル) は空セットによって表されます。

- をn組とし、 とします。このとき、となります。(右矢印 は、「 と結合する」と読むことができます。)





この定式化では、

mセットのn組
離散数学、特に組合せ論と有限確率論では、n組はさまざまな計数問題の文脈で現れ、長さnの順序付きリストとしてより非公式に扱われます。[ 7 ] m個の要素からなる集合からエントリが生成されるn組は、繰り返しのある配置、多重集合の順列、および英語以外の文献では繰り返しのある変形とも呼ばれます。 m集合のn組の数はm nです。これは、積の組合せ規則に従います。[ 8 ] Sが濃度mの有限集合である場合、この数はn倍のデカルト冪S × S × ⋯ × Sの濃度です。組はこの積集合の要素です。
型理論
プログラミング言語でよく使われる型理論では、タプルは積型を持ちます。積型は長さだけでなく、各要素の基になる型も決定します。正式には、

そして、射影は項コンストラクタです。

リレーショナルモデルで使用されるラベル付き要素を持つタプルはレコード型を持ちます。これらの型はどちらも、単純型ラムダ計算の単純な拡張として定義できます。[ 9 ]
型理論におけるタプルの概念と集合論におけるタプルの概念は、次のように関連しています。型理論の自然なモデルを考え、スコット括弧を使用して意味的解釈を示すと、モデルは次のようないくつかのセット(ここではイタリック体を使用してセットと型を区別しています)で構成されます。 
![{\displaystyle [\![{\mathsf {T}}_{1}]\!]=S_{1},~[\![{\mathsf {T}}_{2}]\!]=S_{2},~\ldots ,~[\![{\mathsf {T}}_{n}]\!]=S_{n}}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
基本的な用語の解釈は次のとおりです。
。
型理論のn組は集合論のn組として自然に解釈できる。 [ 10 ]
![{\displaystyle [\![(x_{1},x_{2},\ldots ,x_{n})]\!]=(\,[\![x_{1}]\!],[\![x_{2}]\!],\ldots ,[\![x_{n}]\!]\,)}](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
ユニットタイプには、意味解釈として 0 タプルがあります。
プログラミング言語におけるタプル型の一覧については、「製品型#プログラミング言語における製品型」を参照してください。
参照
注記
参考文献
出典
外部リンク
ウィクショナリーにおけるタプルの辞書定義