top page > computer > haskell > web_lecture > for_programmer > boollike_class.html
更新日:
文責: 重城良国

型クラスBoolLike

(工事中 90%)

boolLike.hs

型クラスBoolLike

「Boolのようである」という性質を表現する型クラスを作成する。この性質は「その型をBool値に変換する関数が存在する」ことで表現できる。つまり以下のような関数がその型に対して存在すれば良い。

toBool :: [その型] -> Bool

そして関数toBoolを持つという性質自体に名前をつける。ここではBoolLikeという名前にする。この「性質」が型クラスであり

class BoolLike a where
toBool :: a -> Bool

のように書く。ファイルに定義して対話環境に読みこむ。

% ghci boolLike.hs
*Main> :info BoolLike
class BoolLike a where
toBool :: a -> Bool
-- Defined at boolLike.hs:1:1

性質

型クラスは型の性質を表す。性質は特定の関数を持つことで表現される。ある型Tが型クラスCの性質を持つとき「型Tは型クラスCのインスタンスである」と言う。性質を示す関数は複数であっても良い。このような関数をクラス関数と呼ぶ。

構文

class 型クラス名 型変数 where
クラス関数1の名前 :: クラス関数1の型
クラス関数2の名前 :: クラス関数2の型
...

型クラス名は大文字ではじまる識別だ。

まとめ

型クラスは型の持つ性質を表す。性質は特定の関数を持つことで表現される。型Tが型クラスCの性質を持つことを型Tは型クラスCのインスタンスであると言う。

「条件分岐をわかりにくくする」へもどる 「基本的な型を型クラスBoolLikeのインスタンスにする」へ

正当なCSSです! HTML5 Powered with CSS3 / styling, and Semantics