cpp create lambda with recursion

#include <iostream>

int main() {
    std::function<int(int)> factorial = [&factorial](int n) {
        return n <= 1 ? 1 : n * factorial(n - 1);
    };

    std::cout << "Factorial of 5 is: " << factorial(5) << std::endl;

    return 0;
}