What is 'Currying' in functional programming?

What is 'Currying' in functional programming?

Approach: Describe converting a function with multiple arguments into a sequence of functions.

The technique of translating the evaluation of a function that takes multiple arguments into evaluating a sequence of functions, each with a single argument.

Follow-up: What is 'Partial Application'?

Key concepts: partial application, first-class functions.