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 which includes immutability, Partial function specialization, and pattern matching.
In this talk, I’ll take you on the journey of functional Programming in modern C++ and how to write awesome and simple C++ code which conforms to all tenets of Functional Programming.
The talk shall contain full fledged examples which shall be made available to participants post conference
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 and expected amount of time it will take
- Introduction of functional programming and C++11 (Changes, History & Future) - ~ 7 - 10 Mins
- Lambdas and Closures in C++ ~ 5 Mins
- Immutability and Partial function Specialization - ~8 - 10 Mins
- Functional MultiThreading with Lambdas. - ~8 - 10 Mins
- Lambdas in STL - ~ 7 - 10 Mins
- Interesting Addons like Pattern Matching with Lambdas - ~ 5 Mins
- Q & A ~ Rest of the available time
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 of languages like Java & Scala can also understand the contents.