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
- ReasonML: First Look
- Designing Highly Scalable and Highly Available SQL Databases (2020)
- Advanced C#: Functional Programming Patterns
- Functional Programming in C++
- Advanced C# Programming Concepts
- Java 25 for Professionals with Jetbrains AI Assistant
- React: Design Patterns
- Tableau and R for Analytics Projects
Related learn paths
- Moving from Data Analyst to Data Scientist
- Improve Your React Skills
- Advance Your Skills in AI and Machine Learning
- Advance Your Data Skills in Apache Spark
- Moving from Data Scientist to Data Analyst
- Become a JavaScript Developer
- The Top Skills Engineering Professionals Have Right Now
- Become an Arduino Developer