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

型クラス: Eq

(工事中 70%)

はじめに

「ふたつの値が等しいかどうかを判定できる」という性質を示す型クラスEqが定義されている。

型クラスの定義

class Eq a where
(==), (/=) :: a -> a -> Bool

x == y = not (x /= y)
x /= y = not (x == y)

クラス関数として等号(==)と不等号(/=)とがある。お互いによってデフォルトの定義がされている。これはどちらを定義してもいいということだ。

ドリンクのサイズ

drinkSize.hs

ドリンクのサイズを等値比較を可能にしてみよう。

instance Eq Size where
Short == Short = True
Tall == Tall = True
Grande == Grande = True
Venti == Venti = True
_ == _ = False

% ghci drinkSize.hs
*Main> Short == Short
True
*Main> Venti == Grande
False
*Main> Venti /= Grande
True

「ドリンクのサイズの例」へもどる 「型クラス: Ord」へ

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