Skip to content

函数式编程 (Functional Programming)

函数式编程是一种编程范式,它将计算过程视为数学函数的求值,并避免改变状态和可变数据。

核心概念

  1. 纯函数 (Pure Functions):

    • 相同的输入永远得到相同的输出。
    • 没有任何可观察的副作用(如修改全局变量、打印日志、网络请求等)。
  2. 不可变性 (Immutability):

    • 数据一旦创建就不能被修改。
    • 修改数据时返回一个新的数据结构。
  3. 高阶函数 (Higher-Order Functions):

    • 将函数作为参数传递,或者返回一个函数。
  4. 函数组合 (Function Composition):

    • 将两个或多个函数组合成一个新的函数。
    • compose (右到左) 与 pipe (左到右)。
  5. 柯里化 (Currying):

    • 将一个多参数函数转换成一系列单参数函数。
    • 例如,f(a, b, c) 转换为 f(a)(b)(c)
  6. Point-free 风格 (Point-free Style):

    • 函数定义时不显式提及参数。
    • 依赖函数组合和柯里化。
  7. 声明式编程 (Declarative Programming):

    • 关注“做什么”而不是“怎么做”。
    • 通过表达式描述计算逻辑,而不是通过语句描述控制流程。
    • 例如,使用 map, filter, reduce 等高阶函数处理数据集合。
    • 避免使用显式的循环和条件语句。
  8. 函数是一等公民 (First-Class Citizens):

    • 函数可以像其他数据类型一样被传递和操作。
    • 可以将函数赋值给变量,作为参数传递给其他函数,或者作为返回值返回。
  9. 函子 (Functor):

    • 一种带有 map 方法的容器类型。
    • 例如 Array, Promise, Maybe 等。

MIT Licensed | Keep Learning.