函数式个人理解1- add(a+b+c) =add(add(a+b), c) ,从复杂问题变成简单问题

63 阅读1分钟

不好意思,本人文字能力有限,仅以粗浅的文字表达自己对于函数式的理解

今天无意间回忆道学习函数式时,看到这个加法分配律的公式 add(a, b, c) = add(add(a+b), c),当时并不明所以,现在突然间有一种醍醐灌顶的感觉,我们解决代码问题可以从最简单的问题去解决,类似于归并排序,问题很复杂,是否有一定的规律去拆分问题呢。由此引深是否数组循环的问题更多时候我需要关注的其实仅仅是单个是怎么样,再引深是否组件的设计也应该更关注的单个是怎么样

今天就以a+b+c这个东西为例子
// 假设a+b = d
// a+b+c = d+c
// 需求是三数相加
const add = (a, b, c) => a + b + c
// 是不是可以分成更小的问题 参数个数也由3个变为了2个
const add = (a, b) => a + b
add(add(a,b), c)

// 假设导入数据时,需要对后端给的数据进行前端标准化
// 返回的是list,我们仅需要关心单个的数据是什么情况足以
const normalizeUser = (user) => {
    const userCopy = { ...user }
    userCopy.isImport = true
    return userCopy
}

list.map(genUser)

同时也包括我,应该总是在思考怎么样才能学好函数式,用好函数式,今天我来告诉你答案当有一天你发现你的代码里面let的数量急剧下降时,函数式就算入门了