解説
演算子について
先ほどのSemigroup Int型は、「整数と乗算の半群」と呼ばれるものです。
Wikipediaの言葉と合わせて見ていきましょう。
集合 S とその上の二項演算 • : S × S → S が与えられたとき、組 (S, • ) が以下の条件を満たすならば、これを半群という。
今回の集合Sは、「Int」です。
つまり64bit CPUであれば-2147483648 〜 2147483647
という数全ての集合です。
-- 半群型クラス
instance Semigroup Int where
sappend = (*)
二項演算 • : S × S → S
今回の二項演算・とはsappend関数で指定されている、(*)演算子のことです。
ちなみに、
S × S → S
とは、Haskellでいう型
s -> s -> s
です。
Semigroup型インスタンスの関数
sappend :: a -> a -> a
が、うまく合致しています。