Skip to content

Instantly share code, notes, and snippets.

@marekdano
Created May 19, 2020 11:33
Show Gist options
  • Save marekdano/ecc0e04259cef3726ca1ea5c8385cab5 to your computer and use it in GitHub Desktop.
Save marekdano/ecc0e04259cef3726ca1ea5c8385cab5 to your computer and use it in GitHub Desktop.
Curry in Javascript
const curry = (fn) => {
const curried = (...args) => {
if (args.length >= fn.length) {
return fn(...args)
} else {
return (...innerArgs) => curried(...args, ...innerArgs)
}
}
return curried
}
let curriedMultiply = curry(multiply)
const result = curriedMultiply(1,2,3)
console.log(result) // 6
const result2 = curriedMultiply(1)(2)(3)
console.log(result2) // 6
const result3 = curriedMultiply(1)(2,3)
console.log(result3) // 6
const result4 = curriedMultiply(1,2)(3)
console.log(result4) // 6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment