Function currying is a technique of transforming a function that takes multiple arguments into a sequence of functions that each take a single argument. It's named after mathematician Haskell Curry. Currying lets you create specialized versions of more general functions by pre-filling some of the arguments. For example, instead of calling add(1, 2, 3), currying would let you decompose this into add(1)(2)(3). This technique is powerful for function composition and creating reusable, specialized function variants.