Currying transforms a function with multiple arguments into nested functions that each accept one argument. Each call supplies one value and returns the next function, allowing deferred invocation until every value is available. section 2.2.8
Nested single-argument functions
A four-argument addition can be expressed directly or through progressively nested functions: `(f1 1 2 3 4)`, `((f2 1 2 3) 4)`, `(((f3 1 2) 3) 4)`, and `((((f4 1) 2) 3) 4)` all produce the same result. Clojure usually favors partial application instead, avoiding this nesting while still deferring trailing arguments. section 2.2.8
Distinguish currying from Clojure’s usual alternative:
- Currying returns another one-argument function after each invocation. section 2.2.8
- Partial application fixes supplied arguments, permits remaining arguments together, and works especially well when composing sequence operations such as map and filter. section 2.2.8






