Real World Haskell - 第3章 Part1 Defining a new data type
Real World Haskell で Haskell を継続的に勉強中。
Defining Types, Streamlining Functions
Chapter 3. Defining Types, Streamlining Functions
Defining a new data type
data BookInfo = Book Int String [String] deriving (Show)
myInfo = Book 9780135072455 "Algebra of Programming" ["Richard Bird", "Oege de Moor"]
- 新しいデータ型は data キーワードで定義する
- この例の BookInfo は type constructor と呼ぶ
- type name 同様、type constructor も大文字で始めるべし
- この例の Book は value constructor (data constructor) と呼ぶ
- value constructor も大文字で始めるべし
- この例の Int String [String] は components (fields) と呼ぶ
- 3-tuple でも同様の型は定義できるが、たまたま構造が同じデータを区別して扱えない
- 例えば BookInfo だけでなく MagazineInfo も扱いたい場合
data MagazineInfo = Magazine Int String [String] deriving (Show)
参考