当前位置:网站首页>函数柯里化(curry)
函数柯里化(curry)
2022-08-10 17:19:00 【Echo-潔】
1、概念
把一个多参数的函数,转化为单参数函数。
2、代码演示
// 柯里化之前
function add(x, y) {
return x + y;
}
add(1, 2) // 3
// 柯里化之后
function addX(y) {
return function (x) {
return x + y;
};
}
addX(2)(1) // 3
扩展一道经典面试题
// 实现一个add方法,使计算结果能够满足如下预期:
add(1)(2)(3) = 6;
add(1, 2, 3)(4) = 10;
add(1)(2)(3)(4)(5) = 15;
function add() {
// 第一次执行时,定义一个数组专门用来存储所有的参数
var _args = Array.prototype.slice.call(arguments);
// 在内部声明一个函数,利用闭包的特性保存_args并收集所有的参数值
var _adder = function() {
_args.push(...arguments);
return _adder;
};
// 利用toString隐式转换的特性,当最后执行时隐式转换,并计算最终的值返回
_adder.toString = function () {
return _args.reduce(function (a, b) {
return a + b;
});
}
return _adder;
}
add(1)(2)(3) // 6
add(1, 2, 3)(4) // 10
add(1)(2)(3)(4)(5) // 15
add(2, 6)(1) // 9
边栏推荐
猜你喜欢
随机推荐
Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满?
LeetCode 0640.求解方程:过几天就看不懂了的迷惑性代码,但是是详解
【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(上)
自适应模糊神经网络与bp神经网络的区别
基于AWS构建云上数仓第二步:AWS常见服务简介
2022 CCF China Open Source Conference Notice (Fourth Round)
JNDI and RMI, LDAP
2021强网杯
leetcode:340.至多包含K个不同字符的最长子串
R语言使用ggpubr包的ggbarplot函数可视化柱状图、设置add参数为mean_se和jitter可视化不同水平均值的柱状图并为柱状图添加误差线(se标准误差)和抖动数据点分布
文件包含漏洞复习总结
#夏日挑战赛#【ELT.ZIP】啃论文俱乐部——学术科研方法论沉淀辑
本周四晚19:00知识赋能第六期第5课丨OpenHarmony WiFi子系统
shopee API 接入说明
【硬件架构的艺术】学习笔记(4)流水线的艺术
长markdown文档的拆分与合并
产品-Axure9英文版,A页面内a1状态跳转B页面的b2状态,(条件跳转状态)
【JDK】Oracle又一个JDK大版本停止扩展技术支持
pytorch 模型GPU推理时间探讨3——正确计算模型推理时间
TradingView_学习笔记