Fonction anonyme

Définition, exemples et bonnes pratiques

À retenir

  • Elle n'a pas de nom et ne peut pas être appelée ailleurs dans le programme.
  • Elle est définie et utilisée au même endroit (souvent comme argument).
  • Elle permet d'écrire un code plus compact et fluide.

Une fonction anonyme est un bloc d'instructions informatiques qui ne possède pas de nom pour l'identifier. C'est un peu comme une consigne écrite sur un post-it pour un usage immédiat et unique : on l'exécute directement là où elle est écrite, sans avoir besoin de la ranger dans une bibliothèque de fonctions pour la réutiliser plus tard.

Étymologie

Le terme vient du grec anōnumos (« sans nom »). En informatique, ces fonctions sont très souvent appelées lambda, en référence au « lambda-calcul », un système mathématique inventé par Alonzo Church dans les années 1930 pour explorer la logique des fonctions.

Exemples d'usage

  • En JavaScript, une fonction passée à addEventListener pour réagir à un clic de souris.
  • En Python, l'utilisation du mot-clé lambda pour trier une liste d'objets selon un critère spécifique.
  • En PHP ou Java, lors de l'utilisation de filtres pour transformer les données d'un tableau en une seule ligne.

Cas d'usage

On les utilise principalement comme fonctions de rappel (callbacks) : on donne une tâche à effectuer à une autre fonction (par exemple : « trie cette liste en utilisant cette règle précise »). Elles sont omniprésentes dans le développement web moderne, la programmation asynchrone et le traitement de flux de données (Big Data).

Bonnes pratiques

La règle d'or est la brièveté. Une fonction anonyme doit rester courte et simple (souvent une seule ligne). Si le code à l'intérieur devient complexe ou dépasse 3-4 lignes, il est préférable de créer une fonction nommée classique pour améliorer la lisibilité et faciliter le débogage.

Synonymes

fonction lambda expression de fonction closure (par abus de langage)

Antonymes

fonction nommée déclaration de fonction

Conseil

Si vous débutez, voyez les fonctions anonymes comme des raccourcis. Au lieu de déclarer une fonction, de lui donner un nom, puis de l'appeler, vous écrivez directement l'action là où le programme en a besoin. C'est très pratique pour les petites opérations de nettoyage de données.

Questions fréquentes

Une fonction anonyme peut-elle retourner une valeur ?

Oui, elle fonctionne exactement comme une fonction normale, elle peut recevoir des paramètres et renvoyer un résultat.

Est-ce la même chose qu'une fermeture (closure) ?

Pas tout à fait. Une fonction anonyme peut devenir une closure si elle capture des variables situées en dehors de son propre bloc de code.

Sont-elles moins performantes ?

Dans la grande majorité des langages modernes, la différence de performance est négligeable par rapport à une fonction nommée.