当前位置:网站首页>js currying
js currying
2022-07-30 09:08:00 【Li Jianyi】
柯里化
概念
柯里化(currying)又称部分求值,is a technique for converting a multi-parameter function to a one-parameter function.
Currying is the way to go f(a, b, c) The functional form of is changed to f(a)(b)的形式.柯里化不会调用函数,Just transform the function.
原理
A curried function of a function,is to pass in a function as a parameter“柯里化函数”,The function receives the incoming function parameters inside the function,After receiving the function does not evaluate,而是继续返回另一个函数,Save the parameters just passed in as a closure,After all parameters have been received,trigger evaluation.
效果
/** * 柯里化函数 * @param {function} f 需要柯里化的函数 * */
function curry(f) {
return fucntion(a) {
return function(b) {
return function(c) {
f(a, b, c);
}
}
}
};
function sum(a, b, c) {
return a + b + c;
}
let currySum = curry(sum);
console.log(currySum(1, 2, 3));
高级柯里化
function curry(f) {
return function curried(...args) {
if(args.length >= f.length) {
return f.apply(this, args);
}else {
return function(...args1) {
return curried.apply(this, args.concat(args2));
}
}
}
}
// 使用方式
function sum(a, b, c) {
return a + b + c;
}
let currySum = curry(sum);
console.log(currySum(1, 2, 3));
console.log(currySum(1, 2)(3));
console.log(currySum(1)(2)(3));
边栏推荐
猜你喜欢
随机推荐
41.【vector应用操作2】
孙洪鹤讲教材:原点+众筹+产品,逆向营销实战操作方案
代币(双代币)系统研究
Webview中的超链接点击到外部浏览器打开
ES: 箭头函数和包裹它的代码共享相同的this
【WeChat Mini Program】Page Events
hcip 第14天学习笔记
英语语法-名词性从句
【Kotlin 中的类和继承】
万字详解:C语言三子棋进阶 + N子棋递归动态判断输赢(另附课设大作业参考)
电源完整性基础知识
ACL 2022 | 引入角度margin构建对比学习目标,增强文本语义判别能力
智能存储柜——解决您的存储需求
elk报错:[syslogs] index has exceeded [1000000]
集合相关Collection
一文读懂二十种开关电源拓扑结构
SQL的ROUND函数用法及其实例
实现定时器
TreeSet解析
C13—使用innosetup工具制作软件安装向导2022-07-23









