Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
JavaScript函数式编程(纯函数、柯里化以及组合函数)
前言
函数式编程(Functional Programming),又称为泛函编程,是一种编程范式。早在很久以前就提出了函数式编程这个概念了,而后面一直长期被面向对象编程所统治着,最近几年函数式编程又回到了大家的视野中,JavaScript是一门以函数为第一公民的语言,必定是支持这一种编程范式的,下面就来谈谈JavaScript函数式编程中的核心概念纯函数、柯里化以及组合函数。
1.纯函数
1.1.纯函数的概念
对于纯函数的定义,维基百科中是这样描述的:在程序设计中,若函数符合以下条件,那么这个函数被称之为纯函数。
- 此函数在相同的输入值时,需产生相同的输出;
- 函数的输入和输出值以外的其他隐藏信息或状态无关,也和由I/O设备产生的外部输出无关;
- 该函数不能有语义上可观察的函数副作用,诸如“触发事件”,使输出设备输出,或更改输出值以外物件的内容等;
对以上描述总结就是:
- 对于相同的输入,永远会得到相同的输出;
- 在函数的执行过程中,没有任何可观察的副作用;
- 同时也不依赖外部环境的状态;
1.2.副作用
上面提到了一个词叫“副作用”,那么什么是副作用呢?
- 通常我们所说的副作用大多数是指药会产生的副作用;
- 而在计算机科学中,副作用指在执行一个函数时,除了得到函数的返回值以外,还在函数调用时产生了附加的影响,比如修改了全局变量的状态,修改了传入的参数或得到了其它的输出内容等;
1.3.纯函数案例
- 编写一个求和的函数sum,只要我们输入了固定的值,sum函数就会