Lambdas and Callables
Lambda Basics
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
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;
}
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
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
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