Fonction anonyme

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

En programmation informatique, une fonction anonyme, aussi appelée lambda expression ou fonction lambda est une fonction n'ayant pas de nom. Les fonctions anonymes existent dans certains langages de programmation comme Python, JavaScript, OCaml ou C++[1]. Certains langages, comme le C et Pascal (tout au moins les versions standards de ces langages), ne permettent pas d'écrire des fonctions anonymes.

Parce que ces fonctions n'ont pas de nom, à l'endroit où l'on voudrait mettre leur nom, on trouve directement les instructions définissant la fonction introduites par une syntaxe particulière.

Étymologie

Dans les langages de programmation fonctionnelle, les fonctions anonymes sont souvent appelées fonctions lambda, en référence au lambda-calcul, outil théorique dans lequel on programme tout sous forme d'appel de fonction, alors même qu'aucune fonction de base n'est définie.

Exemples

JavaScript

Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

En JavaScript, la fonction suivante renvoie le carré de son argument :

const carre = x => x * x;

La fonction anonyme suivante renvoie la somme des carrés de ses arguments (dont le nombre est indéfini) :

const sommeDeCarres = (...args) => args.reduce((a, b) => a + b * b, 0);

Python

Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

En Python, la fonction suivante renvoie le carré de son (unique) argument :

carre = lambda x: x * x

La fonction anonyme suivante renvoie la somme des carrés de ses arguments (dont le nombre est indéfini) :

somme_de_carres = lambda *args: sum(x ** 2 for x in args)

OCaml

En OCaml, la fonction anonyme suivante renvoie le carré de la somme de ses arguments

let carre_de_somme a b = (function x -> x * x) (a + b) ;;

La fonction anonyme (function x -> x * x) calcule le carré de son argument. On peut rendre la chose explicite en nommant la fonction de la façon suivante :

let carre x = x * x ;;
let carre_de_somme a b = carre (a + b) ;;

Haskell

En Haskell, la fonction anonyme suivante renvoie le nombre passé en argument multiplié par 2 : (\x -> 2*x).

Notes et références

  1. « Lambda expressions (since C++11) - cppreference.com », sur en.cppreference.com (consulté le )
  • icône décorative Portail de l’informatique