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 potente característica de C++ que te permite crear funciones pequeñas y anónimas justo donde las necesitas. Piensa en ellas como minifunciones que puedes definir y usar sin tener que escribir una declaración de función independiente.

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


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

[=]: captura todas las variables locales por valor (la lambda obtiene su propia copia)
[&]: captura todas las variables 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 a una lambda sencilla:

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

myLambda();  // Call the lambda function

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

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

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

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 utilizan la sintaxis [](){}, donde los corchetes [] son la cláusula de captura, los paréntesis () contienen los parámetros (vacíos en 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 ejecutarla inmediatamente, 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