首页
学习
活动
专区
圈层
工具
发布

Monoid_Haskell笔记9

*e = e*a = a (摘自幺半群) 要有个遵守结合律的二元函数,还要有个作为该函数幺元的值,二者构成Monoid Monoid typeclass 位于Data.Monoid模块: class Semigroup...类定义的,mappend = ()声明了mappend与是完全等价的 要求Monoid(幺半群)必须先是Semigroup(半群,具体见最后一部分),其中mempty是幺元,mappend是那个二元函数...a => Semigroup (Maybe a) where Nothing b = b a Nothing = a Just a Just b =...Just (a b)instance Semigroup a => Monoid (Maybe a) where mempty = Nothing P.S.注意这里的类型约束,要求a是个Semigroup...从语法角度来看,三者关系如下: class Semigroup a where -- 满足结合律的运算(同时也满足封闭性) () :: a -> a -> aclass Semigroup a

1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到
    领券