函数式编程

什么是函数式编程

 函数式编程是声明式编程的范式。在函数式编程中数据在由纯函数组成的管道中传递。

> 函数式编程可以用简单如交换律、结合律、分配律的数学之法来帮我们简化代码的实现。
它具有如下一些特性:

  • 纯粹性: 纯函数不改变除当前作用域以外的值;
// 反面示例
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.cnblogs.com/suihang/p/10522755.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值