下午尝试自己实现柯里化,写出了如下代码:
这是代码截图: http://realrz.com/curry_not_working.png
function curry(f, params_count) {
if ([0, 1].includes(params_count)) return f;
const params = [];
let result_fuction = f(...params);
for (let i = 0; i < params_count; i++) {
result_function = function (val) {
params.push(val);
return result_function;
};
}
return result_function;
}
function add1(a, b) { return a + b }
function add2(a, b, c) { return a + b + c }
const curriedAdd1 = curry(add1, 2);
const curriedAdd2 = curry(add2, 3);
curriedAdd1(1)(2); // 没有得到 3
curriedAdd2(1)(2)(3); // 没有得到 6
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.