IT lexicon › Programming › Currying

Currying

Programming På svenska → Updated: 2026-05-27

Transform function of multiple arguments to sequence of single-argument functions. add(a, b) becomes add(a)(b). Default in Haskell (every function curried automatically). Manual in JS, Python, Ruby.

Named after Haskell Curry (logician). Practical use: partial application — fix some args, return function. const add5 = curry(add)(5); add5(10) // 15. Functional libraries: Lodash _.curry(), Ramda R.curry. Common pattern in React: event handlers that accept data: onClick={() => deleteItem(id)} is manual partial application. Distinct from partial application: currying transforms function shape, partial application binds argument values. Modern JS: arrow functions + spread syntax make currying syntax friendly. TypeScript currying: pain-shop with complex generic types.

← Back to the lexicon