Lambdas: The Functional Programming Companion of Modern C++
C++ as a Programming Languages had ruled the programming world for quite some time. It was so much synonymous to Object Oriented Programming that when functional programming came into the picture, nobody initially thought of C++ as a candidate for the same.
Fortunately, the C++ Standardization (isocpp.org) committee had a different idea and they later came up with C++11 which was a paradigm shift in the language. C++ now not only allows programmers to write functional code, but it has also evolved the language into a meta programming language.
The core of these changes which enables functional programming in C++ revolves around the introduction of Lambdas. Suddenly, with lambdas, we’re not only writing functional code in C++ but can also have functional threads, functional locks, and functional memory management.
The beauty of lambdas can also be judged from the fact that it has also made many of the STL (Standard Template Library) algorithms functional which along with the concepts and ideas of Closures makes C++ an ideal candidate to be considered for writing functional codes
In this talk, I’ll take you on the journey of functional Programming in modern C++. We’ll also see how the language has evolved and why it’s still a favorite for doing performance intensive jobs which we can, of course, do in a functional way
Outline/Structure of the Talk
Here is the proposed outline of my session
- Introduction of functional programming
- Introduction to C++11 (Changes & History)
- The Lambdas in C++ Languages ( Wh, What and How)
- Lambdas and Closures
- Functional MultiThreading with Lambdas.
- Lambdas in STL
- MetaProgramming in C++ using Lambdas
The participants of this talk shall be able to understand the changes that makes C++ a functional programming language. They will also be able to understand how to write functional code in new C++
Programmers acquainted with basics of Object Oriented Programming in C++ or Functional Programmers of any other language
Prerequisites for Attendees
General awareness of C++ Programming is required to understand this talk. However, people with knowledge or language like Java & Scala can also understand the contents.