相关疑难解决方法(0)

Functor,Applicative Functor和Monad之间的关系

在阅读类型类时,我已经看到Functors,Applicative Functors和Monads之间的关系是严格增加的权力.函数是可以映射的类型.Applicative Functors可以使用某些效果执行相同的操作.Monads与可能不受限制的效果相同.此外:

Every Monad is an Applicative Functor
Every Applicative Functor is a Functor
Run Code Online (Sandbox Code Playgroud)

Applicative Functor的定义清楚地表明了这一点:

class Functor f => Applicative f where
  pure  :: a -> f a
  (<*>) :: f (a -> b) -> f a -> f b
Run Code Online (Sandbox Code Playgroud)

但Monad的定义是:

class Monad m where
  return :: a -> m a
  (>>=)  :: m a -> (a -> m b) -> m b
  (>>)   :: m a -> m b -> m b
  m …
Run Code Online (Sandbox Code Playgroud)

haskell

34
推荐指数
2
解决办法
3886
查看次数

标签 统计

haskell ×1