「タプル」の版間の差分

削除された内容 追加された内容
m ボット: 言語間リンク 25 件をウィキデータ上の (d:Q600590 に転記)
15行目:
==計算機科学におけるタプル==
 
[[PythonLISP]][[ML]]、[[Haskell]]、[[Python]] といったいくつかの[[プログラミング言語]]は、このタプルを保持するデータ構造を有している。
 
===プログラミング言語Python{{lang|en|LISP}} におけるタプル===
{{lang|en|LISP}}言語では、二分木(ダブル)が利用できる。コンスセル<ref>{{lang-en-short|cons cell}}</ref>と呼ばれるもので、これを線形につなげたものを [[S式]] または リストという。リストは {{lang|en|LISP}} 言語では組み込みデータ型の一つであり、{{lang|en|LISP}} プログラムのコードを自体を記述するデータ形式でもある。
 
二分木の要素には名前がついており、前者を{{ルビ|{{lang|en|car}}|カー}}、後者を{{ルビ|{{lang|en|cdr}}|クダー}}という。二分木のデータを生成するには、<code>cons</code> 関数を用いる。
 
<source lang="lisp">
(cons car部のデータ cdrのデータ)
</source>
 
また、
 
<source lang="lisp">
(list データ1 データ2 データ3 … データN)
</source>
 
という関数は、
 
<source lang="lisp">
(cons データ1 (cons データ2 (cons データ3 … (cons データN nil) … )))
</source>
 
というタプル表現と等価である。
 
==={{lang|en|Python}} におけるタプル===
 
Pythonにおけるタプルとは、いくつかの値 (数値型、文字列型など)をひとつにまとめて、あたかもひとつの値のように扱う機能である。カッコで複数の値をまとめるという見た目が似ているのでよく[[リスト]]や[[配列]]と混同されるが、タプルは目的が異なっており、リストや配列が同質の (同じ型をもつ) オブジェクトをまとめるのに対し、タプルは用途や型が異なるオブジェクトをひとつにまとめるために使われる。このためタプルの働きは、むしろ[[C言語]]の[[構造体]]に似ているといえる。構造体には通常異なる型や名前をもった値がまとめて格納される。これによって、本来ならばひとつの値しか扱えない箇所 (関数の返り値や、変数への代入、配列の各要素など) で複数の値を同時に扱うことが可能になる。Python のタプルはこの構造体を匿名にしたようなものと考えることができる。