Dustin Campbell does a good job explaining the mechanics of currying in C#, although I'm afraid he stops before truly explaining why currying is considered an essential building block of functional programming. He promises to get to that in "the next post" so I won't offer my own take. As with recursion, simple examples often seem pointlessly complex ("Why would I want to calculate a factorial with recursion? Why would I want to add numbers with a curried function?"), so you're not likely to get the actual "art" of currying until he does his follow-up. (via .NET Languages Weblog)