What is the benefit of using curried functions in functional composition?
Curried functions enable more precise function composition by allowing functions to be partially applied before composition. In functional programming, it's common to compose functions to create new functions. When functions are curried, you can easily create specialized versions with some arguments pre-set before composing them with other functions. This leads to more reusable, modular code. For example, if you have a curried filter function, you can create specialized filters (like `filterEvens`) and then compose them with other operations (like map or reduce) to build complex data transformations in a clean, step-by-step manner.