We may earn an affiliate commission when you visit our partners.

Functional Programming in C#, Second Edition

Enrico Buonanno

Real world examples and practical techniques for functional programming in C# without the jargon and theory.

In Functional Programming in C#, Second Edition you will learn how

Use higher-order functions to reduce duplication and do more with less code

Use pure functions to write code that is easy to test and optimize

Write pleasant APIs that accurately describe your program's behavior

Use dedicated types to handle nullability, system errors, and validation rules predictably and elegantly

Write composable code without the overhead of an IoC container

Functional Programming in C# has helped thousands of developers apply functional thinking to C# code. Its practical examples and spot-on treatment of FP concepts makes it the perfect guide for proficient C# programmers. This second edition is fully revised to cover new functional-inspired features in the most recent releases of C#, including tuples, async streams, pattern matching, and records. Each chapter is packed with awesome perspectives and epiphany moments on how functional programming can change the way you code.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

About the technology

Turbocharge your C# code. Good functional techniques will improve concurrency, state management, event handling, and maintainability of your software. This book gives you practical answers to why, how, and where to add functional programing into your C# coding practice.

About the book

Functional Programming in C#, Second Edition teaches functional thinking for real-world problems. It reviews the C# language features that allow you to program functionally and through many practical examples shows the power of function composition, data-driven programming, and immutable data structures. All code examples work with .NET 6 and C# 10.

What's inside

Higher-order functions reduce duplication and do more with less code

Code based on pure functions is easy to test and optimize

Write pleasant APIs that accurately describe your program’s behavior

Write a Web API in a functional style

Monadic composition with LINQ

About the reader

For intermediate C# programmers.

About the author

Enrico Buonanno studied Computer Science at Columbia University and has over 15 years of experience as a developer, architect, and trainer.

Table of Contents

PART 1 GETTING STARTED

1 Introducing functional programming

2 Thinking in functions

3 Why function purity matters

PART 2 CORE TECHNIQUES

4 Designing function signatures and types

5 Modeling the possible absence of data

6 Patterns in functional programming

7 Designing programs with function composition

PART 3 FUNCTIONAL DESIGNS

8 Functional error handling

9 Structuring an application with functions

10 Working effectively with multi-argument functions

11 Representing state and change

12 A short introduction to functional data structures

13 Event A functional approach to persistence

PART 4 ADVANCED TECHNIQUES

14 Lazy computations, continuations, and the beauty of monadic composition

15 Stateful programs and stateful computations

16 Working with asynchronous computations

17 Traversable and stacked monads

18 Data streams and the Reactive Extensions

19 An introduction to message-passing concurrency

Read on Amazon
Read this for free with Kindle Unlimited

Save this book

Create your own learning path. Save this book to your list so you can find it easily later.
Save

Share

Help others find this book page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser