为什么要去学习函数式编程

函数式编程比较复杂比较枯燥,但是为了了解react和redux,如果没有函数式编程的理论铺垫,很难学好他们。

函数式编程在js当中是一个比较抽象的概念,大家在以前可能听说过函数式编程,但是可能并没有系统的去了解过他们。

函数式编程和面向对象编程一样,是一套编程范式,你可以根据函数式编程的理论为你的代码设计这个过程。只不过但是函数式编程要求相对比较高一些

为什么要去学习函数式编程

函数式编程其实相对于计算机的历史而言是一个非常古老的概念,甚至早已第一台计算机的诞生。他的演算并非设计在计算机上执行,而是在20世纪三十年代引入的一套用于研究函数定义,函数应用和递归的形式系统。

也就是说函数式编程已经是一个很老的概念了,那为什么我们还要学习他,其实函数式编程以前和前端没有任何关系,也并不流行。只是因为react和redux将它带火了。有了高阶函数,那么高阶函数就是函数式编程的一部分,所以才将函数式编程带火了。

函数式编程主要是用于研究函数的定义,函数的应用和递归的而这样一个形式的系统。

注意,函数式编程不是用函数来编程,也不是传统的面向过程编程,主旨在于将复杂的函数复合成简单的函数,运算过程尽量写成一系列嵌套的函数调用。大家注意区分用函数编程和函数式编程是不同的。

react的高阶组件,使用了高阶函数来实现,高阶函数就是函数式编程的一个特性,我们后面会学到。虽然react当中使用了一些函数式编程的特性,但它并不是纯函数式的。

另外react的一些生态,比如redux,它使用了函数式编程的一些思想,所以我们想要更好的学习react和redux的话,我们需要了解函数式编程。

我们都知道vue3对vue2做了很大的重构,而且越来越偏向函数式,我们在使用vue3的一些api的时候可以感受到,在vue2的源码中也大量的时候到了高阶函数,这些流行框架都在趋向于函数式编程,我们甚至可以说你可以不学习这些框架,但是你不能不了解函数式编程。因为这些才是永远不变的内容。

很多同学再学习js之前可能都了解过面向对象的语言,比如说Java,C#以及C++等等,所以在学习js的时候,我们也都是从面向对象开始学习的,我们会通过学习原型,原型链以及模拟实现继承的机制来实现面向对象的一些特性。我们在学习的过程中还会遇到this的各种各样问题,如果我们用到函数式编程的时候,我们就可以抛弃掉this。

是用函数式编程有很多的好处,比如说打包的时候可 以更好的利用tree-shaking来过滤无用的代码。

使用函数式编程还可以方便测试,方便并行处理,这些都是由函数式编程的特性来决定的。

还有很多库可以帮助我们进行函数式开发,比如说lodash,underscore,ramda。

这就是为什么要学习函数式编程。

函数式编程的概念

函数式编程是范畴轮的数学分支,是一门很复杂的数学,认为世界上所有的概念体系都可以抽象出一个范畴。范畴可以理解为群体的概念,比如一个班级中的同学,就可以理解为一个范畴。

只要彼此之间存在某种关系概念,事物,对象等等,都构成范畴,任何事物只要找出他们之间的关系,就可以被定义。比如说教室中上课的人,可以彼此都不认识,但是大家的关系是同学,所以就是一个范畴。

关系一般用箭头来表示,正式的名称叫做 态射 。范畴轮认为,同一个范畴的所有成员,就是不同状态的变形。通过态射一个成员就可以变形成另一个成员。简单来说就是每个成员之间都是有关系的。

函数式编程英文的叫法是Functional Programming 缩写是FP。函数式编

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值