代数的データ型
嬉しいこと
型を使うと、ありえない状態を防ぎ、事前に検査ができる 代数的データ型を使うと、型の組み合わせが可能になる
より柔軟かつ厳密な表現ができる
種類
積(AND)
複数の型の値を同時に保持する
値のパターンが掛け算で増える=直積
和(OR)
複数の選択肢のうちのいずれか1つを保持する=列挙
ただし要素に直積型は取らない
直積型を持つことができる列挙型
ケースごとに違う構造(直積型)を持つことができるので表現力が強い
継承(サブクラス)も似ているが、クラスがオープンだと勝手にサブクラスを追加できる 要素が確定しないので、直和型ではない
応用例
UIの状態表現
参考資料