函数式编程
函数式编程
提及函数式编程,就不得不说范畴论
范畴论是抽象地处理数学结构以及结构之间联系的一门数学理论 –百度百科
而函数式编程则是范畴论在计算机编程方面的应用。
概念
什么是函数
这里讲的函数是数学中函数的概念。函数概念含有三个要素:定义域A、值域B和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。
映射关系是函数的本质特征
函数式编程
在计算机中,数据总是从某种状态经过计算转换成另一种状态,计算机计算则是执行不同状态的变形关系的过程。
函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。
和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。
和过程化编程相比,函数式编程里函数的计算可随时调用。
–百度百科
JavaScript中的function
函数式编程方法要在JavaScript中实践,必然绕不开JavaScript中的函数对象。在JavaScript中谈论函数,你一定听过
函数是JavaScript语言中的一等公民
由此可见,函数是JavaScript语言中非常重要的组成部分。函数在JavaScript中的位高权重主要体现在以下几个方面:
可以作为表达式赋值给变量
1 |
|
上面的代码中,一个匿名函数对象被赋值给变量f1
可以作为返回值
1 |
|
上面的代码中,创建一个变量f2来接收f1函数执行后返回的另一个函数。因为f1返回的是一个函数,因此f2可以在需要的地方被调用。
可以作为参数传递
1 |
|
上面的代码中f1作为map函数的入参被传递。
函数作用域
在ES6以前,JavaScript中语言中并没有像C语言这样的“块级作用域(block scope)”。函数内声明的变量不能被函数外访问,JavaScript中变量的访问权限是函数隔离的。
1 |
|
函数式编程
https://jacksiongt.github.io/2021/04/30/函数式编程/