Writer Monad
Int as Monoid
整数は加法についてモノイドである*1。Monoidのインスタンスにしてみよう。
instance Monoid Int where mempty = 0 mappend = (+)
sum' :: [Int] -> Int sum' = mconcat vecPlus :: (Int, Int) -> (Int, Int) -> (Int, Int) vecPlus = mappend
整数は加法についてモノイドである*1。Monoidのインスタンスにしてみよう。
instance Monoid Int where mempty = 0 mappend = (+)
sum' :: [Int] -> Int sum' = mconcat vecPlus :: (Int, Int) -> (Int, Int) -> (Int, Int) vecPlus = mappend