大前端攻城狮之路JavaScript函数式编程

Posted javascript攻城师

tags:

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

•1.函数式编程是范畴论的数学分支是一门很复杂的数学,认为世界上所有概念体系都可以抽象出一个个范畴

•2.彼此之间存在某种关系概念、事物、对象等等,都构成范畴。任何事物只要找出他们之间的关系,就能定义

•3.箭头表示范畴成员之间的关系,正式的名称叫做"态射"(morphism)。范畴论认为,同一个范畴的所有成员,就是不同状态的"变形"(transformation)。通过"态射",一个成员可以变形成另一个成员。

对于前端,所有的成员是一个集合,变形关系是函数。

函数式编程基础理论

1..函数式编程(Functional Programming)其实相对于计算机的历史而言是一个非常古老的概念,甚至早于第一台计算机的诞生。函数式编程的基础模型来源于 λ (Lambda x=>x*2)演算,而 λ 演算并非设计于在计算机上执行,它是在 20 世纪三十年代引入的一套用于研究函数定义、函数应用和递归的形式系统。

2.函数式编程不是用函数来编程,也不是传统的面向过程编程。主旨在于将复杂的函数符合成简单的函数(计算理论,或者递归论,或者拉姆达演算)。运算过程尽量写成一系列嵌套的函数调用

3.javascript 是披着 C 外衣的 Lisp。

4.真正的火热是随着React的高阶函数而逐步升温。

5.函数是一等公民。所谓”第一等公民”(first class),指的是函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值。

6.不可改变量。在函数式编程中,我们通常理解的变量在函数式编程中也被函数代替了:在函数式编程中变量仅仅代表某个表达式。这里所说的’变量’是不能被修改的。所有的变量只能被赋一次初值。

7.map & reduce他们是最常用的函数式编程的方法。

将上面的概念简述一下:

1. 函数是”第一等公民”

2. 只用”表达式",不用"语句"

3. 没有”副作用"

4. 不修改状态

5. 引用透明(函数运行只靠参数)

二 函数式编程常用核心概念

•纯函数

•函数的柯里化

•函数组合

•Point Free

•声明式与命令式代码

•核心概念

1.纯函数

什么是纯函数呢?

对于相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用,也不依赖外部环境的状态的函数,叫做纯函数。

举个栗子:

(c)2006-2024 SYSTEM All Rights Reserved IT常识