Functional Programming with C++ Training Course

Overview

Functional programming is the evaluation of mathematical functions for computational solutions. Together with C++,  functional programming allows users to create complex elements and structures for web applications that are not susceptible to side effects and mutations.

This instructor-led, live training (online or onsite) is aimed at web developers who wish to functional program with C++

By the end of this training, participants will be able to:

  • Use functional programming solutions to improve the performance of web applications.
  • Avoid data mutation and side effects with functional programming.
  • Create web applications in a functional programming style.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.

Requirements

Prerequisites

  • An understanding of procedural/object-oriented programming
  • Basic experience with C++

Audience

  • Web Developers

Course Outline

Introduction

Functional Programming in Depth

  • Object-oriented programming vs functional programming
  • First class functions and higher-order functions

Functional Programming in C++

  • Writing code in a functional style
  • Creating Lambda functions
  • Capturing objects
  • Merging functions

Metaprogramming and Functional Reactive Programming

  • Applying factorials
  • Using C++ template libraries and functional programming libraries
  • Working with Reactive extensions and RxCpp library

Functional C++ Development

  • Building applications
  • Using higher-order functions
  • Working with error handling
  • Implementing functors and monads
  • Refactoring code
  • Writing unit tests
  • Profiling performance
  • Multithreading applications

Summary and Conclusion

Leave a Reply

Your email address will not be published. Required fields are marked *