Advanced C#: Functional Programming Patterns

Advanced C#: Functional Programming Patterns

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 1h 55m | 302 MB

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.

Table of Contents

Introduction
1 Functional programming patterns
2 What you should know
3 Working with GitHub

Overview
4 Overview of the functional programming concepts

Favor Pure Functions
5 Write pure functions for better code
6 Example of an impure function
7 Refactor impure function to pure
8 Reduce code side effects
9 Don’t mutate input arguments
10 Use an immutable argument

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

Side Effects and IO
16 Work with files
17 Calculate the total in pure function
18 Randomness in functional programming

Choose Expressions
19 Why expressions are better for functional programs
20 Rewrite statements as expressions

Functional Functions
21 Use FuncT for first-class functions
22 Higher order functions

Function Composition and Pipelining
23 Composition patterns
24 Compose functions
25 Pipelining with extension methods
26 Pipelining with generic methods
27 Pipelining with IEnumerable

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