À retenir
- C'est une fonction sans nom (anonyme).
- Elle permet d'écrire un code plus compact et élégant.
- Elle est idéale pour des traitements ponctuels et rapides.
Une expression lambda est une petite fonction "express" qui n'a pas de nom (on dit qu'elle est anonyme). C'est un bloc de code concis que l'on crée au moment précis où on en a besoin pour effectuer une tâche simple, comme une petite machine de calcul temporaire.
Étymologie
Traduction directe de l'anglais lambda expression. Le mot provient du lambda-calcul, un système mathématique inventé par Alonzo Church dans les années 1930 pour modéliser le calcul. La lettre grecque lambda (λ) était utilisée pour introduire des variables dans les fonctions mathématiques.
Exemples d'usage
- En JavaScript :
(a, b) => a + bdéfinit une fonction qui additionne deux nombres sans avoir besoin de la nommer. - En Python :
lambda x: x * 2permet de doubler instantanément une valeur dans une opération de tri ou de filtrage. - En Java ou C# : utilisé pour traiter des listes de données de manière fluide (par exemple, garder uniquement les nombres pairs).
Cas d'usage
On les utilise principalement pour transformer ou filtrer des collections de données (listes, tableaux), définir des comportements lors d'un clic sur un bouton (gestion d'événements) ou passer une logique de calcul spécifique en paramètre à une autre fonction.
Bonnes pratiques
L'expression lambda doit rester courte et simple (une seule ligne idéalement). Si la logique devient complexe ou nécessite plusieurs lignes, il est préférable de créer une fonction classique avec un nom clair pour faciliter la relecture et le débogage du programme.
Synonymes
Antonymes
Conseil
Quand vous débutez, voyez les lambdas comme des 'fonctions jetables'. Si vous avez besoin de réutiliser la même logique à plusieurs endroits, ne faites pas de lambdas : créez une fonction nommée classique.
Questions fréquentes
Pourquoi utiliser une lambda au lieu d'une fonction classique ?
Pour gagner en clarté et éviter de 'polluer' le code avec des noms de fonctions qui ne servent qu'une seule fois à un endroit précis.
Est-ce que tous les langages les supportent ?
La plupart des langages modernes (Python, JS, Java, C#, C++, PHP) les intègrent désormais sous diverses syntaxes.