须知少年凌云志,曾许人间第一流。这篇文章主要讲述FunctorApplicative 和 Monad x相关的知识,希望能为你提供帮助。
首先,我们来看一下 Functor typeclass 的定义:
1 2 |
class Functor f where fmap :: (a -> b) -> f a -> f b |
Applicative typeclass
同样的,我们先来看一下 Applicative typeclass 的定义:
1 2 3 |
class Functor f =>
Applicative f where pure :: a -> f a (< *> ) :: f (a -> b) -> f a -> f b |
在 Applicative typeclass 中定义了两个函数:
- pure a (< *> ) :将一个在上下文中的函数 f (a -> b) 应用到一个在上下文中的值 f a ,并返回另一个在上下文中的值 f b 。
1 2 3 4 5 6 7 8 9 10 |
class Applicative m =>
Monad m where return :: a -> m a (> > =) :: m a -> (a -> m b) -> m b (> > ) :: m a -> m b -> m b x > > y = x > > = \_ -> y fail :: String -> m a fail msg = error msg |
1 2 3 |
class Applicative m =>
Monad m where return :: a -> m a (> > =) :: m a -> (a -> m b) -> m b |
【FunctorApplicative 和 Monad x】
推荐阅读
- Mybatis MetaObject和ObjectWrapper设计概念
- c#开发移动APP-Xamarin入门
- Android studio 不能创建Activity等文件
- adb.Android手机可以通过adb执行按键操作
- 第七篇-列表式App(ListActivity及ListView)
- 第三篇-以LinearLayout进行Android界面设计
- Android------------UI的控件学习内容
- TensorFlow教程入门介绍详细解释
- Unity UI文字介绍和用法示例