https://leetcode-cn.com/problems/add-to-array-form-of-integer/
/**num = [2,7,4], k = 1812 + 1, 7 + 8, 4 + 1*/function addToArrayForm(num: number[], k: number): number[] {const result: number[] = [];const len = num.length;for(let i = len - 1; i >= 0; i--) {let sum = num[i] + k % 10;k = Math.floor(k / 10);// 需要进位if (sum >= 10) {k = k + 1sum = sum - 10;}result.push(sum)}// 处理k的数字长度大于数组的数字长度for (; k > 0; k = Math.floor(k / 10)) {result.push(k % 10)}return result.reverse();};
function curry(func: Function) {
const len = func.length;
return function inner(...args) {
if (args.length >= len) {
return func.apply(null, args);
}
return inner.bind(null, ...args);
}
}
function sum(a, b, c) {
return a + b + c;
}
let curriedSum = curry(sum);
console.log(curriedSum(1, 2, 3)); // 6, still callable normally
console.log(curriedSum(1)(2, 3)); // 6, currying of 1st arg
console.log(curriedSum(1)(2)(3)); // 6, full currying
