const curry = (func, arr = []) => (...args) => (nextArgs => nextArgs.length === func.length ? func(...nextArgs) : curry(func, nextArgs))([...arr, ...args]);