函数式编程思想

之前没太具体去了解过这个概念,只是会一直听别人说起,今天具体理解一下。

 

函数式编程是一种“编程范式”,如何编写程序的方法论。

主要的思想是将运算过程编程一系列的函数调用。

在范畴学的基础上衍生出来,范畴指的是某一类事物,并且之间有联系,可以通过方式进行转换。

函数式编程只是范畴学的运算方法,和数理逻辑、微积分一样都是数学方法,只不过正好可以用计算机语言写出来。

函数是一个管道,左边进入一个值,右边会出来一个值。

纯的不能有副作用?本质上就是一种数学运算,不做其他事,否则无法满足运算规则。

 

函数式编程有合成和柯里化两个概念:

  • 合成:当两个数的转换需要进过几个步骤,将几个步骤合为一个。
  • 柯里化:当合成的过程中,函数的参数个数不同,就无法合成,需要将一个多参数的函数转换成一个单参数的函数。

 

函子:

函子具有map方法,即将一个容器能够转换成另一个容器。函数式编程变成利用不同的函子解决实际问题。

 

具体函子介绍参考:http://www.ruanyifeng.com/blog/2017/02/fp-tutorial.html

 

posted @ 2018-03-27 10:13  bounce  阅读(474)  评论(0编辑  收藏  举报