C# for JavaScript developers: Currying and function composition in C#