型と型クラス
9.2 代数的データ型
引数のない関数は存在しない
う〜む、今まで考えてもみなかった視点です。
引数のない関数は存在しない。
一方でデータコンストラクタは引数なしもあり。
合わせて覚えておきます。
列挙型スタイルと共用体型スタイル
本文中にあったBool以外の列挙型スタイルの代数的データ型をPreludeモジュールの中で探してみました。
data Maybe a = Nothing | Just a deriving (Eq, Ord, Read, Show) data Either a b = Left a | Right b deriving (Eq, Ord, Read, Show) data Ordering = LT | EQ | GT deriving (Eq, Ord, Enum, Read, Show, Bounded)
もちろん多相的な型宣言も可能なわけですね。
…いや、Maybe aやEither a bは共用体スタイルに当たりますね。