Last Updated: May 22, 2026
Currying transforms a function that takes several arguments into a chain of functions that each take exactly one argument. A regular f(a, b, c) becomes f(a)(b)(c). The intermediate calls return functions, and the final call returns the result. This chapter explains where the idea comes from, why functional-language code is built around it, how to write curried functions in Python with nested closures, how libraries like toolz and fnc make it less painful, when currying beats partial, and the limits of using it in idiomatic Python.