函数式编程 -- 柯里化

2021/6/11 20:21:11

本文主要是介绍函数式编程 -- 柯里化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

柯里化

  • 当一个函数有多个参数的时候,先传递一部分参数调用它(这部分参数以后将不会再发生变化),然后返回一个新的函数接收剩余的参数,这个函数返回结果

  • 示例

// _lodash 中的curry函数
const _ = require('lodash')
function getSum(a,b,c){
  return a+b+c
}
const curried = _.curry(getSum)
console.log(curried(1,2,3))
console.log(curried(1)(2,3))
console.log(curried(1,2)(3))
//上面三种写都将得到一样的结果,即6

什么时候使用柯里化函数

  • 比如在程序中,需要写很多遍同一函数、不同参数、同时我们又想保持函数的纯度的情况,可以采用柯里化简化参数,比如:
function checkAge(min,age){
  return age>=min
}
checkAge(18,20)
checkAge(18,21)
checkAge(18,25)
checkAge(18,31)
// 上面这样,检测age是否>=min,对于需要写很多遍时,可以柯里化,像下面这样:

function checkAge(min){
  return function(age){
    return age >=min
  }
}

//比较age是否>=18可以这样写:
let checkAge18=checkAge(18)
//比较age是否>=20可以这样写:
let checkAge20=checkAge(20)

//后续比较都只需要输入一个参数age就可以了
console.log(checkAge18(21))
console.log(checkAge20(21))


这篇关于函数式编程 -- 柯里化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程