Functional Programming with C# (Create More Supportable, Robust, and Testable Code)