函数式编程基本概念

Posted gaollard

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数式编程基本概念相关的知识,希望对你有一定的参考价值。

编程范式

  • 命令式编程(Imperative)
  • 声明式编程(Declarative)
  • 函数式编程(Functional)

面向对象、泛型、元编程 也都是很主要的编程范式

命令式编程: 命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么

声明式编程: 声明式编程是以数据结构的形式来表达程序执行的逻辑

函数式编程: 函数式编程和声明式编程是有所关联的,因为他们思想是一致的:即只关注做什么而不是怎么做

针对“将数组元素的的每项变为原来的2倍” 体验命令式编程和声明式编程的区别

// 命令式编程
const double = (list) => {
  let result = []
  for (let i = 0; i < list.length; i++) {
    result[i] = 2 * i
  }
  return result
}

// 声明式编程
const list = []
const result = list.map(item => 2 * item)

头等函数(first-class function)

高阶函数(high-order function)

  • 接受一个或多个函数作为输入
  • 或输出一个函数

纯函数(pure function)

满足纯函数的条件:

  1. 函数的执行结果只依赖于它的参数
  2. 函数在执行过程里面没有副作用
const root = window
const reactive = (name => {
  console.log(name, root)
})

// reactive 不是纯函数,因为它的执行依赖函数的外部变量 root

DOM操作/数据库操作等具有副作用,因为它们改变了外部数据

纯函数的优点:

  • 可读性好
  • 代码可测
  • 易于复用

以上是关于函数式编程基本概念的主要内容,如果未能解决你的问题,请参考以下文章

函数式编程:基本概念

[一] java8 函数式编程入门 什么是函数式编程 函数接口概念 流和收集器基本概念

函数式编程中的基本概念

函数式编程中的基本概念

函数式编程中的基本概念

认知函数式编程