Advanced C#: Functional Programming Patterns (2020)
1h 55mAdvanced2020-08-11
Authors

Walt Ritscher
Programmer, UI Designer, Staff Instructor at LinkedIn Learning
Course details
Functional programming offers developers a straightforward way to tackle modern software problems like massive scale, distributed systems, and multiple threaded runtimes. Curious about how to work functional programming patterns into your .NET applications? In this course, Walt Ritscher shows you how. Discover how to leverage the functional programming features in C# to transform your code. Walt covers key topics such as immutability, higher-order functions, and why expressions are better for functional programs. Plus, learn how to compose function flow in C# using pipelining; work with functional programming concepts like map, filter and bind in LINQ; and more.
Skills covered
C#Programming FoundationsProgramming LanguagesMicrosoftSoftware DevelopmentDeep Dive (X:Y)
Concepts
0. Introduction
- 01 - Functional programming patterns
- 02 - What you should know
- 03 - Working with GitHub
1. Overview
- 04 - Overview of the functional programming concepts
2. Favor Pure Functions
- 05 - Write pure functions for better code
- 06 - Example of an impure function
- 07 - Refactor impure function to pure
- 08 - Reduce code side effects
- 09 - Don't mutate input arguments
- 10 - Use an immutable argument
3. Immutable Types
- 11 - Principles of immutable types
- 12 - Read-only properties
- 13 - Instance method in immutable type
- 14 - Use helper methods to create new instance
- 15 - Use factory method to create instance
4. Side Effects and I O
- 16 - Work with files
- 17 - Calculate the total in pure function
- 18 - Randomness in functional programming
5. Choose Expressions
- 19 - Why expressions are better for functional programs
- 20 - Rewrite statements as expressions
6. Functional Functions
- 21 - Use Func T for first-class functions
- 22 - Higher order functions
7. Function Composition and Pipelining
- 23 - Composition patterns
- 24 - Compose functions
- 25 - Pipelining with extension methods
- 26 - Pipelining with generic methods
- 27 - Pipelining with IEnumerable
8. Work with Lists
- 28 - Understand map and other concepts
- 29 - Map with LINQ select
- 30 - Filter with LINQ where
- 31 - Flatten with SelectMany
- 32 - Join with SelectMany
- 33 - Fold with Sum and Aggregate
Conclusion
- 34 - Next steps
Related courses
- Advanced C# Programming Concepts
- C# Hands-on Practice with Data-Structures
- Advanced C#: Functional Programming Patterns
- Ten Tips for the C# Developer
- C# and .NET Essential Training
- Mastering AI Tools for Efficient C# Development
- Advanced C#: Classes, Records, and Structs
- C# and .NET Development with VS Code