代数的データ型とは? わかりやすく解説

代数的データ型

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/21 14:04 UTC 版)

代数的データ型(だいすうてきデータがた、: algebraic data type)とはプログラミング、特に関数型プログラミング型システムにおいて使われるデータ型である。それぞれの代数的データ型のには、1個以上のコンストラクタがあり、各コンストラクタには0個以上の引数がある。




「代数的データ型」の続きの解説一覧

代数的データ型

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/11/20 02:06 UTC 版)

Haskell」の記事における「代数的データ型」の解説

Haskellデータ型には代数的データ型と呼ばれるC言語などでいう構造体列挙体の性質兼ね備えたものが用いられる次の例は二つInt型の値をフィールドに持つ二次元座標、Point2D 型を定義したもので、これは代数的データ型の構造体的な性質を示す。先頭トークンdata」は代数的データ型の宣言であることを示す予約語である。ここで最初の Point2D はデータ型名を表し次の Point2D はデータコンストラクタ名を示す。 data Point2D = Point2D Int Intorigin :: Point2Dorigin = Point2D 0 0 -- データコンストラクタは関数のように適用できる データコンストラクタは値を定義するための特殊な関数といえる。データコンストラクタは後述するパターンマッチによって値を取り出す際にも用いられる次の例はトランプ4つスーツを示す Suit 型を定義したのであるSpadeHeartClubDiamond4つのデータコンストラクタが定義されており、Suit 型の式は SpadeHeartClubDiamondいずれかの値をとる。 data Suit = Spade | Heart | Club | Diamond 次の例は String 型の値を格納する二分木の型である。Leaf)は String 型の値を持ちBranch)は Leaf もしくは Branch である Tree 型の変数二つ持つ。これは代数的データ型の構造体的な性質と列挙体的な性質両方現れている。 data Tree = Leaf String | Branch Tree Treeorganisms :: Treeorganisms = Branch animals plants -- Branch (Branch (Branch (Leaf "Lion") (Leaf "Tiger")) (Leaf "Wolf")) (Leaf "Cherry")animals = Branch cats (Leaf "Wolf")cats = Branch (Leaf "Lion") (Leaf "Tiger")plants = Leaf "Cherry" GADTと呼ばれる機能を使うと、コンストラクタの型を明示してデータ型定義するともできる。 {-# LANGUAGE GADTs #-}data Maledata Femaledata Person s where Adam :: Person Male Eve :: Person Female Child :: Person Male -> Person Female -> Int -> Person a

※この「代数的データ型」の解説は、「Haskell」の解説の一部です。
「代数的データ型」を含む「Haskell」の記事については、「Haskell」の概要を参照ください。

ウィキペディア小見出し辞書の「代数的データ型」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「代数的データ型」の関連用語

代数的データ型のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



代数的データ型のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの代数的データ型 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのHaskell (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS