function getSum(a, b, c) {
return a + b + c;
}
function curry(fn) {
return function curryFn(...args) {
console.log(fn.length);
if (args.length < fn.length) {
return function() {
console.log('arguments===', args.concat(Array.from(arguments)))
return curryFn(...args.concat(Array.from(arguments)));
}
}
return fn(...args);
}
}
let curryGetSum = curry(getSum);
console.log(curryGetSum(1, 2, 3));
console.log(curryGetSum(1)(2, 3));
console.log(curryGetSum(1)(2)(3));
函数柯里化
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1.0 非受控组件 2.0 受控组件 等同于vue中的数据双向绑定。 3.0 高阶函数 高阶函数:如果一个函数符合...
- 一、什么是柯里化? 我们先来看看维基百科中是如何定义的:在计算机科学中,柯里化(英语:Currying),又译为卡...
- 高阶函数的定义 在《javascript设计模式和开发实践》中是这样定义的。 函数可以作为参数被传递; 函数可以作...
- 函数式编程与面向对象编程[1]: Lambda表达式 函数柯里化 高阶函数.md 之剑 2016.5.2 11:1...