A lambda is a small function object that can be written near the code that uses it.

lambda expression A lambda can take parameters, return a value, and be stored in a variable.

Lambda Basics

value
lambda_basics.cpp
Replay: real traced execution (multi-file project)
#include <iostream>

int main() {
    int value = 5;

    auto doubleValue = [](int number) {
        return number * 2;
    };

    int result = doubleValue(value);

    std::cout << "value=" << value << std::endl;
    std::cout << "result=" << result << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int value = 2;

    auto doubleValue = [](int number) {
        return number * 2;
    };

    int result = doubleValue(value);

    std::cout << "value=" << value << std::endl;
    std::cout << "result=" << result << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int value = 8;

    auto doubleValue = [](int number) {
        return number * 2;
    };

    int result = doubleValue(value);

    std::cout << "value=" << value << std::endl;
    std::cout << "result=" << result << std::endl;
    return 0;
}
  1. value ← 5, doubleValue ← 1, result ← 10

    3int main() {4    int value→ 5 = 5; //@value=2, 856    auto doubleValue→ 1 = [](int number) {7        return number * 2;8    };910    int result→ 10 = doubleValue1(value5);1112    std::cout << "value=" << value5 << std::endl;13    std::cout << "result=" << result10 << std::endl;14    return 0;15}
    outputvalue=5
    result=10
  1. value ← 2, doubleValue ← 1, result ← 4

    3int main() {4    int value→ 2 = 2;56    auto doubleValue→ 1 = [](int number) {7        return number * 2;8    };910    int result→ 4 = doubleValue1(value2);1112    std::cout << "value=" << value2 << std::endl;13    std::cout << "result=" << result4 << std::endl;14    return 0;15}
    outputvalue=2
    result=4
  1. value ← 8, doubleValue ← 1, result ← 16

    3int main() {4    int value→ 8 = 8;56    auto doubleValue→ 1 = [](int number) {7        return number * 2;8    };910    int result→ 16 = doubleValue1(value8);1112    std::cout << "value=" << value8 << std::endl;13    std::cout << "result=" << result16 << std::endl;14    return 0;15}
    outputvalue=8
    result=16