Menu
Coddy logo textTech

Introducción a expresiones lambda

Parte de la sección Lógica y Flujo del Journey de C++ de Coddy. Lección 42 de 56.

Las expresiones lambda son una característica potente de C++ que te permite crear pequeñas y anónimas function justo donde las necesitas. Piensa en ellas como mini-function que puedes definir y usar sin tener que escribir una declaración de function separada.

La sintaxis básica de una expresión lambda sigue este patrón: [](){}. Los corchetes [] se denominan cláusula de captura, los paréntesis () contienen parámetros (al igual que las function habituales) y las llaves {} contienen el cuerpo de la function.


La cláusula de captura controla qué variable del ámbito circundante puede usar la lambda. Las formas más comunes son:

[=] — captura todas las variable locales por valor (la lambda obtiene su propia copy)
[&] — captura todas las variable locales por referencia (la lambda accede a las originales)
[] — no captura nada (la lambda no puede usar ninguna variable externa)

Así es como se crea y se llama una lambda sencilla:

auto myLambda = []() {
    std::cout << "Hello from Lambda!" << std::endl;
};

myLambda();  // Llama a la función lambda

También puedes definir y ejecutar un lambda inmediatamente sin almacenarlo en una variable:

[]() {
    std::cout << "Immediate execution!" << std::endl;
}();

Las expresiones lambda son especialmente útiles para funciones breves y de un solo uso que no quieres definir por separado. Hacen que tu código sea más conciso y mantienen la lógica relacionada junta.

challenge icon

Desafío

Fácil

Crea un programa que demuestre la sintaxis básica y la ejecución de expresiones lambda. Este desafío pondrá a prueba tu comprensión de cómo definir y llamar funciones lambda simples sin parámetros.

Tu programa debe:

  1. Crear una expresión lambda que imprima Hello from Lambda!
  2. Almacenar esta lambda en una variable usando la palabra clave auto
  3. Llamar a la función lambda para ejecutarla
  4. Crear una segunda expresión lambda que imprima Lambda executed successfully!
  5. Ejecutar esta segunda lambda inmediatamente sin almacenarla en una variable

Usa el siguiente formato de salida exacto:

Hello from Lambda!
Lambda executed successfully!

Recuerda que las expresiones lambda usan la sintaxis [](){}, donde los corchetes [] son la cláusula de captura, los paréntesis () contienen los parámetros (vacíos para este desafío) y las llaves {} contienen el cuerpo de la función. Puedes almacenar una lambda en una variable usando auto variableName = [](){...}; y después llamarla con variableName();. Para la ejecución inmediata, puedes usar la sintaxis [](){...}();, que define y llama a la lambda en una sola instrucción.

Pruébalo tú mismo

#include <iostream>
using namespace std;

int main() {
    // TODO: Escribe tu código debajo
    // Create a lambda expression that prints "Hello from Lambda!"
    // Almacénalo en una variable usando la palabra clave auto
    
    // Llama a la función lambda
    
    // Create a second lambda that prints "Lambda executed successfully!"
    // Ejecútalo inmediatamente sin almacenarlo en una variable
    
    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Compilador de C++ online