Notes based on the book Functional Programming in C# by Enrico Buonanno
- Use higher-order functions to achieve more with less code and reduce duplication;
- Use pure functions to write code that is easy to test and optimize;
- Write APIs that are pleasant to consume and accurately describe your program’ behavior;
- Use dedicated types to handle nullability, system errors, and validation rules in a that’s elegant and predictable;
- Write testable, modular code that can be composed without the overhead of an IoC container;
- Write a Web API in a functional style;
- Write complex programs with simple, declarative code, using high-level functions to process elements in a sequence or a stream of values;
- Read and understand literature written for functional languages;