Functional Programming using C

Write more robust and easier to maintain C++ code than ever before.
Functional Programming using C
File Size :
342.92 MB
Total length :
1h 34m



Tobias Hermann


Last update

Last updated 3/2018



Functional Programming using C

What you’ll learn

You will be able to write code that is easy to understand and almost self-documenting.
You will be familiar with the background of functional programming, understand the fundamental differences of functional solutions compared to imperative ones.
You will be able to solve programming problems elegantly by composing functional tools only or mixing them with other paradigms.
You will spend much less time debugging your real-world applications because of their increased run-time safety.
You will be able to utilize multiple CPUs to improve the performance of your applications.
Your understanding of functional programming will help in other languages too. And it will expand your horizon regarding software engineering in general.

Functional Programming using C

Functional Programming using C-screenshot


You should have some experience in programming with C++.
Previous experience with functional programming is not necessary.
A C++14-compatible compiler is needed.


Controlling complexity is one of the biggest challenges a developer faces. Functional programming helps tremendously with this and thus becomes more and more popular, even in originally imperative and object oriented languages like C++. This course will help you increase your productivity by teaching how to write functional C++ code that is easy to understand, test and reuse.
After mastering the basic building blocks of functional programming, you will learn how to think functionally and solve everyday programming problems in an elegant way. Every provided coding exercises comes with an exemplary solution.
At the end of this course you will be able to use the functional approach to write application code that is extraordinarily robust and pleasant to work with.
And as a bonus, all the concepts you have learned will not only help you when using C++, but are applicable to other programming languages too and will expand your horizon regarding programming in general.


Section 1: Functional programming basics

Lecture 1 Introducing functional programming

Lecture 2 Correctness follows from expressiveness

Lecture 3 Type annotations

Lecture 4 Advantages of certain restrictions

Section 2: Developing functional solutions

Lecture 5 Programming challenge: Parse and product

Lecture 6 Lambdas and closures

Lecture 7 Programming challenge: Longest edge of polygon

Lecture 8 The problem with comments

Lecture 9 High-level expressiveness and concise code

Lecture 10 Currying and partial function application

Lecture 11 Forward application

Lecture 12 Programming challenge: An SQL analogy

Lecture 13 Function composition

Lecture 14 Programming challenge: Interacting with the command line

Section 3: Thinking functionally

Lecture 15 Structuring your project cleanly

Lecture 16 Memoization

Lecture 17 Monoids

Lecture 18 Error handling

Lecture 19 Functors

Lecture 20 Monads

Section 4: Functional C++ in everyday usage

Lecture 21 Refactoring

Lecture 22 Testing

Lecture 23 Performance and profiling

Lecture 24 Multithreading

Lecture 25 OOP Design patterns vanishing

Lecture 26 Libraries

Lecture 27 Outlook and conclusion

This course is for all C++ developers (intermediate and advanced) who want to improve the quality of the C++ code they produce by learning about and applying functional programming principles.

Course Information:

Udemy | English | 1h 34m | 342.92 MB
Created by: Tobias Hermann

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top