Functional Programming using C++
Created By 1
Write more robust and easier to maintain C++ code than ever before.
Created By 1
English
Write more robust and easier to maintain C++ code than ever before.
Created By 1
English
Introducing functional programming
Correctness follows from expressiveness
Type annotations
Advantages of certain restrictions
Programming challenge: Parse and product
Lambdas and closures
Programming challenge: Longest edge of polygon
The problem with comments
High-level expressiveness and concise code
Currying and partial function application
Forward application
Programming challenge: An SQL analogy
Function composition
Programming challenge: Interacting with the command line
Structuring your project cleanly
Memoization
Monoids
Error handling
Functors
Monads
Refactoring
Testing
Performance and profiling
Multithreading
OOP Design patterns vanishing
Libraries
Outlook and conclusion
NA
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.
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.
Tobias Hermann is using functional programming in C++ on a daily basis in professional and private projects. He is the main developer of FunctionalPlus, a publicly available C++ library facilitating functional programming in C++. He currently works in the computer vision industry where he develops high performance image recognition software in C++. His experience in teaching the functional programming paradigm face to face and in articles enables him to help you develop the skills needed to become productive with this approach.
Other interests of him include deep learning, game development and different programming languages like Rust, Python, Haskell and Elm.