函数式编程
Pcjmy2022-02-12JavaScriptJavaScript
函数式编程
函数式编程是种编程方式,它将电脑运算视为函数的计算。
函数式编程是面向数学的抽象,将计算描述为一种表达式求值,其实,函数式程序就是一个表达式。
核心概念:
- 数据不可变: 它要求你所有的数据都是不可变的,这意味着如果你想修改一个对象,那你应该创建一个新的对象用来修改,而不是修改已有的对象。
- 无状态:主要是强调对于一个函数,不管你何时运行,它都应该像第一次运行一样,给定相同的输入,给出相同的输出,完全不依赖外部状态的变化。
函数式编程提出函数应该具备的特性:==没有副作用==和==纯函数==。
函数式编程的特点
- 函数是"一等公民"
- 声明式编程
- 惰性执行(不产生无意义的中间变量)
- 无状态和数据不可变
- 没有副作用
- 纯函数(相同的输入,永远会得到相同的输出)
柯里化
柯里化的意思是将一个多元函数,转换成一个依次调用的单元函数。
柯里化处理的结果刚好就是单输入的。
f(a,b,c) → f(a)(b)(c)
函数组合
函数组合的目的是将多个函数组合成一个函数。
函数组合的好处显而易见,它让代码变得简单而富有可读性,同时通过不同的组合方式,我们可以轻易组合出其他常用函数,让我们的代码更具表现力。
大型的程序,都可以通过这样一步步的拆分组合实现,而剩下要做的,就是去构造足够多的积木块(函数)。
优缺点
优点:
- 代码简洁,开发快速
- 接近自然语言,易于理解
- 易于"并发编程"
- 更少的出错概率
缺点:
- 性能开销
- 资源占用
- 递归陷阱