- 基于Kotlin的Spring Boot微服务实战
- 袁康
- 378字
- 2020-11-24 13:00:57
2.1 初识函数式编程
函数式编程以纯函数的方式编写代码。纯函数指的是一个函数在程序的执行过程中除了根据输入参数给出运算结果外不受其他因素影响。纯函数的核心目的是编写无副作用的代码,它有很多特性,包括不变性、惰性求值等。
函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断演进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。下面通过两个例子来比较一下命令式编程和函数式编程。
对一个数组进行累加。命令式编程逐个遍历元素,进行累加,代码如下:
![](https://epubservercos.yuewen.com/CD9CCF/18519309308427806/epubprivate/OEBPS/Images/39715-00-27-1.jpg?sign=1739476407-3EVSPstyrKmI2TPLLNiCsGAQ9B40K8Cm-0-48fec12cdf0866c944fa7ad347c6d4da)
使用函数式编程,设定初始值和运算方法(累加),遍历集合,即可获得累加和。函数式编程更加关注运算的结果:
![](https://epubservercos.yuewen.com/CD9CCF/18519309308427806/epubprivate/OEBPS/Images/39715-00-28-1.jpg?sign=1739476407-pKx9YdkQ5ZyCNUstvT3ktHWZ5ug8batZ-0-f941e64ddaa7872f6a042f6cd4744ce4)
求斐波那契数列,命令式编程的代码如下,按照斐波那契数列的定义一步步计算结果:
![](https://epubservercos.yuewen.com/CD9CCF/18519309308427806/epubprivate/OEBPS/Images/39715-00-28-2.jpg?sign=1739476407-NMIcagXjOhtzPnd7WElP2wIebkjgeUWS-0-2fe93946e0d53030ff61a2a2265ecbef)
求斐波那契数列,函数式编程的代码如下所示,使用函数式编程将每一步拆解为一个函数,通过函数的组合得到最终结果:
![](https://epubservercos.yuewen.com/CD9CCF/18519309308427806/epubprivate/OEBPS/Images/39715-00-29-1.jpg?sign=1739476407-yVJlU3rf6jsXaByWZW4xaUUFs5OfRhdH-0-cbb784ef0cffd277c183cb9f19607531)