函数式编程 (Functional Programming)
函数式编程是一种编程范式,它将计算过程视为数学函数的求值,并避免改变状态和可变数据。
核心概念
- 相同的输入永远得到相同的输出。
- 没有任何可观察的副作用(如修改全局变量、打印日志、网络请求等)。
- 数据一旦创建就不能被修改。
- 修改数据时返回一个新的数据结构。
高阶函数 (Higher-Order Functions):
- 将函数作为参数传递,或者返回一个函数。
- 将两个或多个函数组合成一个新的函数。
compose(右到左) 与pipe(左到右)。
- 将一个多参数函数转换成一系列单参数函数。
- 例如,
f(a, b, c)转换为f(a)(b)(c)。
Point-free 风格 (Point-free Style):
- 函数定义时不显式提及参数。
- 依赖函数组合和柯里化。
声明式编程 (Declarative Programming):
- 关注“做什么”而不是“怎么做”。
- 通过表达式描述计算逻辑,而不是通过语句描述控制流程。
- 例如,使用
map,filter,reduce等高阶函数处理数据集合。 - 避免使用显式的循环和条件语句。
函数是一等公民 (First-Class Citizens):
- 函数可以像其他数据类型一样被传递和操作。
- 可以将函数赋值给变量,作为参数传递给其他函数,或者作为返回值返回。
- 一种带有
map方法的容器类型。 - 例如
Array,Promise,Maybe等。
- 一种带有