Currying is a core concept of functional programming and a useful tool for any developer's toolbelt. In this lesson, John walks through the definition of currying and its practical usage. [00:00] You may think it's a little weird to write a function which you would call and then call with that returns and then call with that returns. It'd be like one, two, and three where the implementation would