Curry
August 13, 2024
curry()
implement curry()
已複製!const curry = (fn) => { return function curried(...args) { if (args.length >= fn.length) { fn(...args) } else { return (...newArgs) => { return curried(...args, ...newArgs) } } } }
curry() with placeholder
implement curry()
which also supports placeholder.
已複製!const curry = (fn) => { return function curried(...args) { if (args.length >= fn.length && !args.includes(curry.placeholder)) { fn(...args) } else { return (...newArgs) => { return curried( ...args.map((arg) => arg === curry.placeholder ? newArgs.shift() : arg ), ...newArgs ) } } } } curry.placeholder = Symbol()