Functional Programming in C# with Categories

The instructor has published 90% of this course.

This is a Video Lectures course that covers the outline of the book "Functional Programming in C# with Categories"

This course includes 1 attempt.

NOTE: The Full Book:" Functional Programming in C# with Categories" is provided FREE with the current course.

This is a Video Lectures course that covers the outline of the book "Functional Programming in C# with Categories"

You can take a look at the GitHub repository of the course here CourseFunctionalCSharpWithCategories

This course includes- 1 hour on-demand video

What you'll learn

  • Core Functional concepts like Functors ,Monoids, Monads, Folding , Maybe Monad, Try Monad. Either Monad and more
  • Better understanding of Extension Methods, Func Delegates, Anonymous Functions, Local functions, ValueTuples
  • Classic Functional Techniques like Currying and Partial application and more
  • Functional Programming concepts for C# with all the latest C#8.0 features
  • The theory behind modern functional programming
  • Introductory Category theory and how it relates to Functional programming
  • Advance C# Linq Features that allows our classes to use native LINQ syntax like Select, SelectMany, Where


  • You should atleast have atleast a couple of years of experience developing with C#


As the C# becomes more and more functional, in 2019 C# developers have to be familiar with the functional paradigm.

The purpose of this course is to give you a deep dive into the world of functional programming, by presenting it's methods and techniques through the lenses of the object-oriented paradigm.

Many people think that Functional programming in C# is Just LINQ. In this course, I assume that you know the basics of LINQ. We will go beyond LINQ. We will explore some of the concepts that are common knowledge in Functional Languages, like Haskell and Scala and start gaining popularity in Object-oriented languages like JavaScript.

Do you think Everything is a Function or you mostly believe that Everything is an Object?

In this book we will take a closer look at some of the most popular Functional techniques and Patterns from a C# point of view:

  • Functors
  • Monads
  • Maybe /Option Monad
  • Either Monad
  • Task as Monad
  • Try Monad
  • IO Functor
  • Lazy<T> as Functor
  • Nullable as Functor
  • and more

This course, even small in scale, aims to present how some of the mathematical concepts of Category theory that have emerged in those two different programming paradigms. The concepts are applicative (pun intended) in many other programming languages like JavaScript, Java, Scala, F# or even Haskell.

Who this course is for:

  • C# developers who want to have an initial understanding of Category Theory in programming
  • Intermediate and Advanced C# developers who want to know about Functional programming and category theory
  • Functional Programmers in F# or Haskell that want to get an easier transition in C#