next up previous contents index
suivant: Abréviations de type monter: main précédent: Récurrences   Table des matières   Index


Arguments fonctionnels

Il est utile de pouvoir les passer des fonctions en argument à des fonctions. C'est notamment indispensable pour écrire des algorithmes numériques généraux. Par exemple, on écrira la fonction newton avec deux paramètres fonctionnels pour la fonction f dont on calcule un zéro et sa dérivée fprime :


double newton(double f(double), 
              double fprime(double), 
              int n, 
              double x0) {
  if (n == 0) {
    return x0;
  } else {
    double x = newton(f,fprime,n-1,x0);

    return x - f(x)/fprime(x);
  }
}

Techniquement, la valeur qui est passée en argument à une fonction n'est pas l'objet fonctionnel (le code) lui-même, mais l'adresse de ce code en mémoire.



R Lalement