Introduction
Functional programming patterns
()
What you should know
()
Working with GitHub
()
1. Overview
Overview of the functional programming concepts?
()
2. Favor Pure Functions
Write pure functions for better code
()
Example of an impure function
()
Refactor impure function to pure
()
Reduce code side effects
()
Don't mutate input arguments
()
Use an immutable argument
()
3. Immutable Types
Principles of immutable types
()
Read-only properties
()
Instance method in immutable type
()
Use helper methods to create new instance
()
Use factory method to create instance
()
4. Side Effects and I/O
Work with files
()
Randomness in functional programming
()
Calculate the total in pure function
()
5. Choose Expressions
Why expressions are better for functional programs
()
Rewrite statements as expressions
()
6. Functional Functions
Use Func<T> for first-class functions
()
Higher order functions
()
7. Function Composition and Pipelining
Composition patterns
()
Compose functions
()
Pipelining with extension methods
()
Pipelining with generic methods
()
Pipelining with IEnumerable
()
8. Work with Lists
Understand map and other concepts
()
Map with LINQ select
()
Filter with LINQ where
()
Flatten with SelectMany
()
Join with SelectMany
()
Fold with Sum and Aggregate
()