|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 代 : [よ, しろ] 【名詞】 1. world 2. society 3. age 4. generation ・ 代数 : [だいすう] (n) algebra ・ 数 : [すう, かず] 1. (n,n-suf) number 2. figure ・ ー : [ちょうおん] (n) long vowel mark (usually only used in katakana) ・ 型 : [かた] 【名詞】 1. mold 2. mould 3. model 4. style 5. shape 6. data type
代数的データ型()とはプログラミング、特に関数型プログラミングや型システムにおいて使われるデータ型である。それぞれの代数的データ型の値には、1個以上のコンストラクタがあり、各コンストラクタには0個以上の引数がある。 代数的データ型の値(データ)の感覚的な説明としては、引数で与えられた他のデータ型の値を、コンストラクタで包んだようなもの、である。コンストラクタに引数がある代数データ型は複合型(他のデータ型を組み合わせて形成する型)である。 == 概要 == Haskellにおける、葉に整数型の値を持つ(分岐は部分木しか持たない)、二分木の例で説明する。以下のようなdata宣言で、データ型を宣言する。 この宣言でNodeという名前の型を宣言している(Haskellでは型名の先頭は大文字でなければならない)。縦棒("|")で区切って、各コンストラクタによる形を並べる。LeafとBranchはコンストラクタ(データコンストラクタ)である。コンストラクタLeafは1個のIntegerを引数として取り、Branchは2個のNodeを引数として取る(再帰データ型の例にもなっている)。Haskellではコンストラクタの名前も、先頭は大文字でなければならない(ここでは避けたが、型とコンストラクタに同じ名前を使っても構わない)。 Haskellインタプリタghciで、この型の値を入力し表示させた例を示す。 *Main> Leaf 1 Leaf 1 *Main> Branch (Branch (Leaf 1) (Leaf 2)) (Branch (Leaf 3) (Leaf 4)) Branch (Branch (Leaf 1) (Leaf 2)) (Branch (Leaf 3) (Leaf 4)) 中のデータにアクセスするにはパターンマッチを使う。ここで定義した型の木の深さを返す関数の例で次に示す。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「代数的データ型」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Algebraic data type 」があります。 スポンサード リンク
|