JS Built-ins
TypeScriptadvanced

Advanced β€” curry

πŸ“– Usage Example
const add = curry((a: number, b: number) => a + b)
add(1)(2)    // β†’ 3
add(1, 2)   // β†’ 3

curry transforms a multi-argument function so arguments can be applied one at a time.

Advanced: Generic curry

Challenge: Implement curry<A, B, C>(fn: (a: A, b: B) => C): (a: A) => (b: B) => C β€” a curried form of a two-argument function.

const add = curry((a: number, b: number) => a + b)
add(3)(4)  // β†’ 7
πŸ’‘ Hints (1)
  • β€’ Simply return a => b => fn(a, b).