Functor,Applicative,Monad


这是函数式编程内的三个重要概念,本人在接触swift函数学习时接触,彻底搞蒙了,后来又看了多篇文章以后才搞明白,在此只是表述下自己的理解。

唐巧的博客一
唐巧的博客二
雷纯锋的博客

个人认为雷纯锋的介绍较容易理解,但俩者可结合看,形成自己的见解


首先明确三种类型都是一种值数据类型

Functor

接收一个上下文中的值,应用一函数,得到一个上下文中的值
注:接收的是上下文中的值,值存在,相当于接受一个普通值,返回一个普通值;值不存在,则返回空,因值的不确定性,故称为上下文中的值。

Applicative

接收一个上下文中的值,应用一上下文的函数,得到一上下文中的值
住:与Functor区别在于函数也是不确定的,可有可无,故也是上下文的函数

Monad

接收一个上下文中的值,应用一个接收普通值但是返回上下文中的值的函数,得到一个上下文中的值。
注:此与Functor极为相似,区别在于应用的函数,Functor应用的函数是:接收一个普通值返回一个普通值,Monad:应用的函数是:接受一个普通值返回一个上下文中的值。

看那么多都绕晕了,一定要学好语文,区分好主谓宾,去掉定状补,概念就明了了~~


看!灰机~灰机灰过去了~灰机又灰回来了~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容