Lambdas (even those mysterious C++14 generic lambdas) are just syntactic sugar atop constructs that are perfectly understandable when approached from the right direction.
We’ll start with the implementation of C-style functions, then move to overloading, function templates, non-static member functions, and C++11 lambdas. We'll demystify C++14 generic lambdas (the kind with "auto") and cover some minor improvements to lambdas in C++17 and C++2a. Finally, we’ll detour into the implementations of std::function and std::bind to show how they’re different from lambdas.
Arthur O'Dwyer started his career writing pre-C++11 compilers for Green Hills Software; he currently writes C++14 for Akamai Technologies. Arthur is the author of "Colossal Cave: The Board Game," "Mastering the C++17 STL" (the book), and "The STL From Scratch" (the training course). He is occasionally active on the C++ Standards Committee and has a blog mostly about C++.