相关疑难解决方法(0)

我们可以用Alternative做什么,但不能用Monoid做什么?

我读了为什么MonadPlus而不是Monad + Monoid?我理解理论上的差异,但我无法弄清楚实际的差异,因为对于List来说它看起来是一样的.

mappend [1] [2] == [1] <|> [2]
Run Code Online (Sandbox Code Playgroud)

是.也许有不同的实现

mappend (Just "a") (Just "b") /= (Just "a") <|> (Just "b")
Run Code Online (Sandbox Code Playgroud)

但我们可以像Alternative一样实现Maybe Monoid

instance Monoid (Maybe a) where
  Nothing `mappend` m = m
  m `mappend` _ = m
Run Code Online (Sandbox Code Playgroud)

那么,有人可以展示代码示例,它解释了Alternative和Monoid之间的实际区别吗?

问题不是为什么MonadPlus而不是Monad + Monoid?

monads haskell monoids

9
推荐指数
1
解决办法
280
查看次数

标签 统计

haskell ×1

monads ×1

monoids ×1