函数式编程
什么是函数式编程
函数式编程是声明式编程的范式。在函数式编程中数据在由纯函数组成的管道中传递。
> 函数式编程可以用简单如交换律、结合律、分配律
的数学之法来帮我们简化代码的实现。
它具有如下一些特性:
- 纯粹性: 纯函数不改变除当前作用域以外的值;
// 反面示例 let a = 0 const add = (b) => a = a + b // 两次 add(1) 结果不一致 // 正确示例 const add = (a, b) => a + b
- 数据不可变性: Immutable
// 反面示例 const arr = [1, 2] const arrAdd = (value) => { arr.push(value) return arr } arrAdd(3) // [1, 2, 3] arrAdd(3) // [1, 2, 3, 3] // 正面示例 const arr = [1, 2] const arrAdd = (value) => { return arr.concat(value) } arrAdd(3) // [1, 2, 3] arrAdd(3) // [1, 2, 3]
> 在后记 1 中对数组字符串方法是否对原值有影响作了整理
- 函数柯里化: 将多个入参的函数转化为一个入参的函数;
const add = a => b => c => a + b + c add(1)(2)(3)
- 偏函数: 将多个入参的函数转化成两部分;
const add = a => (b, c) => a + b + c add(1)(2, 3)
- 可组合: 函数之间能组合使用
const add = (x) => x + x const mult = (x) => x * x const addAndMult = (x) => add(mult(x))
转载自前端九部:https://www.yuque.com/fe9/basic/pq4mzx
语雀链接🔗 https://www.yuque.com/suihangadam
归来卧占楼千尺,梦落沧波明月舟。