忘记是在那里看到“函数式编程”这一词,这里记录一些我对“函数式编程”的理解
函数式编程,是一种“编程范式”,也就是说是一种编写程序的方法,属于“结构式编程”的一种。目的在于把运算过程写成一系列嵌套的函数,从而让程序目的更加明了,使用更加简单。
1.函数式编程要求只用“表达式”,不用“语句”
“表达式”值得是既有运算,又能返回一个结果的运算,“语句”只有运算,没有返回值。函数式编程,要求每一个子程序,毒都要返回一个特定的结果
2.没有副作用
没有副作主要体现在:函数执行的过程中,不会修改外部变量的值。这样我们在编写程序的时候,就不需要考虑其他函数执行可能引起的变量改变的影响。
3.引用透明
“引用透明”一次引用于大神阮一峰的文章函数式编程初探。函数式编程在执行的过程中,不仅不会影响外部变量,更重要的是他不会使用外部变量,永远只使用传递进来的参数,且遵循“传入同一个参数,返回相同的结果
”这一原则。
先看下面的案例:
假设我们需要计算 1+4-5+6-7 的结果,一般情况下我们会这样实现:
虽然能实现我们想要的结果,但这看起来有点杂乱(这里是以运算符为例,所以没有那么复杂,如果是其他的一些复杂计算,就不知道每一步在做什么了),那么函数式编程是什么样子的?
这样就是函数式编程了吗?怎么觉得过程更复杂了呢?我们来修改一下
|
|
我们把每一个函数执行后都返回 calculate 本身,来实现链式调用,是不是就能清晰的看出来每一步都做了些什么。
初级开发者最常用的链式调用就是 jquery 了,jquery 中就是通过链式调用来让开发者更能容易的去实现自己的目的。
函数是变成还有一个重要的应用方式,那就是“柯里化编程”,具体的请看柯里化编程