Appearance

函数式编程

Pcjmy2022-02-12JavaScriptJavaScript

函数式编程

函数式编程是种编程方式,它将电脑运算视为函数的计算。

函数式编程是面向数学的抽象,将计算描述为一种表达式求值,其实,函数式程序就是一个表达式。

核心概念:

  • 数据不可变: 它要求你所有的数据都是不可变的,这意味着如果你想修改一个对象,那你应该创建一个新的对象用来修改,而不是修改已有的对象。
  • 无状态:主要是强调对于一个函数,不管你何时运行,它都应该像第一次运行一样,给定相同的输入,给出相同的输出,完全不依赖外部状态的变化。

函数式编程提出函数应该具备的特性:==没有副作用==和==纯函数==。

函数式编程的特点

  • 函数是"一等公民"
  • 声明式编程
  • 惰性执行(不产生无意义的中间变量)
  • 无状态和数据不可变
  • 没有副作用
  • 纯函数(相同的输入,永远会得到相同的输出)

柯里化

柯里化的意思是将一个多元函数,转换成一个依次调用的单元函数

柯里化处理的结果刚好就是单输入的。

f(a,b,c)f(a)(b)(c)

函数组合

函数组合的目的是将多个函数组合成一个函数。

函数组合的好处显而易见,它让代码变得简单而富有可读性,同时通过不同的组合方式,我们可以轻易组合出其他常用函数,让我们的代码更具表现力。

大型的程序,都可以通过这样一步步的拆分组合实现,而剩下要做的,就是去构造足够多的积木块(函数)。

优缺点

优点:

  • 代码简洁,开发快速
  • 接近自然语言,易于理解
  • 易于"并发编程"
  • 更少的出错概率

缺点:

  • 性能开销
  • 资源占用
  • 递归陷阱
Last Updated 2022-12-01 10:40:59