mamiemando
Messages postés33663Date d'inscriptionjeudi 12 mai 2005StatutModérateurDernière intervention13 mai 2025
-
30 mai 2022 à 00:48
Callback
Définition
Une callback est une fonction passée en paramètre d'une autre fonction.
Avantage
Une callback sert à factoriser du code.
Par exemple, "trier une liste du plus petit au plus grand élément" et "trier une liste du plus grand au plus petit élément", sont deux problèmes similaires : on change juste la relation d'ordre
<
par
>
. Il suffit donc d'implémenter une seule fonction de tri prenant en paramètre cette relation d'ordre pour traiter les deux problèmes avec le même code.
Exemple
Dans l'exemple qui suit,
compute
attend une callback
f
et deux valeurs
a
et
b
.
functionadd(a, b){return a + b;}functionmult(a, b){return a * b;}functioncompute(f, a, b){
r =f(a, b);
document.write(r);}compute(add,3,5);// Displays 8compute(mult,4,7);// Displays 28
Foncteur
Définition
Un foncteur est un objet qui possède un constructeur et une fonction permettant de l'appeler au même titre qu'une fonction. C'est donc une généralisation directe de la callback (qui n'a pas de notion de constructeur). En mathématiques, cela correspond à la notion de fonction paramétrée :
Le paramètre de la fonction correspond à ce qui est passé à la construction du foncteur (cela correspond à la méthode
__init__
en python).
Le foncteur est ensuite passé en argument à l'algorithme au même titre qu'une callback ordinaire (cela correspond à la méthode
__call__
en python).
Avantage
Contrairement à une callback, le foncteur est paramétrable lors de son initialisation.
Principe
En javascript :
un objet se déclare comme une fonction. Les paramètres de la fonctions correspondent au paramètres du constructeur en C++ ou de