Menu
Coddy logo textTech

Introduction aux expressions Lambda

Fait partie de la section Logique et Flux du Journey C++ de Coddy. Leçon 42 sur 56.

Les expressions Lambda sont une fonctionnalité puissante de C++ qui vous permet de créer de petites fonctions anonymes exactement là où vous en avez besoin. Considérez-les comme des mini-fonctions que vous pouvez définir et utiliser sans avoir à écrire une déclaration de function distincte.

La syntaxe de base d’une expression lambda suit ce modèle : [](){}. Les crochets [] sont appelés la clause de capture, les parenthèses () contiennent les paramètres (comme les function ordinaires) et les accolades {} contiennent le corps de la function.


La clause de capture contrôle quelles variable de la portée environnante la lambda peut utiliser. Les formes les plus courantes sont :

[=] — capturer toutes les variable locales par valeur (la lambda obtient sa propre copy)
[&] — capturer toutes les variable locales par référence (la lambda accède aux originales)
[] — ne rien capturer (la lambda ne peut utiliser aucune variable externe)

Voici comment créer et appeler une lambda simple :

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

myLambda();  // Appeler la fonction lambda

Vous pouvez également définir et exécuter une lambda immédiatement sans la stocker dans une variable :

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

Les expressions lambda sont particulièrement utiles pour les fonctions courtes et ponctuelles que vous ne souhaitez pas définir séparément. Elles rendent votre code plus concis et maintiennent la logique associée regroupée.

challenge icon

Défi

Facile

Createz un programme qui présente la syntaxe de base et l’exécution des expressions lambda. Ce défi testera votre compréhension de la manière de définir et d’appeler de simples fonctions lambda without paramètres.

Votre programme doit :

  1. Createz une expression lambda that prints Hello from Lambda!
  2. Stockez cette lambda dans une variable using le mot-clé auto
  3. Appelez la fonction lambda pour l’exécuter
  4. Createz une deuxième expression lambda that prints Lambda executed successfully!
  5. Exécutez cette deuxième lambda immediately without la stocker dans une variable

Utilisez le format de sortie exact suivant :

Hello from Lambda!
Lambda executed successfully!

N’oubliez pas que les expressions lambda utilisent la syntaxe [](){}, où les crochets [] constituent la clause de capture, les parenthèses () contiennent les paramètres (vides pour ce défi) et les accolades {} contiennent le corps de la fonction. Vous pouvez stocker une lambda dans une variable using auto variableName = [](){...};, puis l’appeler avec variableName();. Pour une exécution immédiate, vous pouvez utiliser la syntaxe [](){...}();, qui définit et appelle la lambda dans une seule instruction.

Essayez vous-même

#include <iostream>
using namespace std;

int main() {
    // TODO: Écrivez votre code ci-dessous
    // Create a lambda expression that prints "Hello from Lambda!"
    // Stockez-la dans une variable en utilisant le mot-clé auto
    
    // Appelez la fonction lambda
    
    // Create a second lambda that prints "Lambda executed successfully!"
    // Exécutez-la immédiatement sans la stocker dans une variable
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux

Entraînez-vous par vous-même : Compilateur C++ en ligne