函数式编程

1/15/2023

# 内容介绍

  • 为什么要学习函数编程以及什么是函数式编程
  • 函数式编程的特性(纯函数、柯里化、函数组合等)
  • 函数式编程的应用场景
  • 函数式编程库 Lodash

# 为什么要学习函数式编程

函数式编程是非常古老的一个概念,早于第一台计算机的诞生,函数式编程的历史。

那我们为什么现在还要学函数式编程?

  • 函数式编程是随着 React 的流行受到越来越多的关注
  • Vue 3也开始拥抱函数式编程
  • 函数式编程可以抛弃 this
  • 打包过程中可以更好的利用 tree shaking 过滤无用代码
  • 方便测试、方便并行处理
  • 有很多库可以帮助我们进行函数式开发:lodashunderscoreramda

# 什么是函数式编程

函数式编程(Functional Programming)是一种编程范式,我们常听说的编程范式还有面向过程编程、面向对象编程。

  • 面向对象编程的思维方式:把现实世界中的事物抽象成程序世界中的类和对象,通过封装、继承、多态来演示事物之间的联系。

  • 函数式编程的思维方式:把现实世界中的事物和事物之间的联系抽象到程序世界(对运算结果进行抽象)

    • 程序的本质:根据输入通过某种运算获得相对应地输出,程序开发过程中会涉及很多有输入和输出的函数

    • x -> f -> y (x 通过 f 运算得到 y) 也就是函数式编程中的函数. y = f(x)

    • 函数式编程中的函数指的不是程序中的函数(方法),而是数学中的函数映射关系,例如 y = sin(x) x和y的关系

    • 相同的输入始终要得到相同的输出(纯函数)

    • 函数式编程用来描述数据(函数)之间的关系

    • 函数式编程用来描述数据(函数)之间的映射

// 非函数式
let num1 = 2;
let num2 = 3;

let sum = num1 + num2;
console.log(sum);

// 函数式
function add(num1, num2) {
    return num1 + num2;
}

let sum = add(2, 3);
console.log(sum);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
编辑时间: 4/12/2023, 5:05:20 PM