Monad
はモノイドですが、たとえば とは異なる方法でモノイドInteger
です。Monoid'
とのMonad'
両方Integer
をMonad'
同じ型クラスのインスタンスとして表現できるような書き方はあるのだろうMonoid'
か。
質問する
447 次
2 に答える
7
それでは、特定の方法Integer
を選択しましょうMonoid
instance Monoid Int where
zero = 0
plus = (+)
そして今ここにMonad
Monoid
{-# LANGUAGE FlexibleInstances #-}
instance Monad m => Monoid (Kleisli m a a) where
zero = id
plus = (.)
そしてここに別のものがあります
instance MonadPlus m => Monoid (m a) where
zero = mzero
plus = mplus
しかし、Haskellで「モナドはエンドファンクターのカテゴリーのモノイドである」という定式化をオフハンドで表現する方法がわかりません。
于 2013-06-20T05:22:16.960 に答える