Fonctions d'ordre supérieur

Fonctions d'ordre supérieur

Fonction d'ordre supérieur

En mathématiques et en informatique, les fonctions d'ordre supérieur ou les fonctionnelles sont des fonctions qui ont au moins une des propriétés suivantes :

  • prendre une ou plusieurs fonctions comme entrée,
  • renvoyer une fonction.

En mathématiques, on les appelle des opérateurs ou des fonctionnelles. La dérivée en calcul infinitésimal est un exemple commun : elle associe une fonction à une autre fonction.

Dans le lambda-calcul non typé, toutes les fonctions sont d'ordre supérieur. Dans le lambda-calcul typé, dont la plupart des langages de programmation fonctionnels sont issus, les fonctions d'ordre supérieur sont généralement celles dont le type contient plus d'une flèche[1]. En programmation fonctionnelle, les fonctions d'ordre supérieur qui retournent d'autres fonctions sont dites curryfiées.

La fonction map présente dans de nombreux langages de programmation fonctionnelle est un exemple de fonction d'ordre supérieur. Elle prend une fonction f comme argument, et retourne une nouvelle fonction qui prend une liste comme argument et applique f à chaque élément. Un autre exemple très courant est celui d'une fonction de tri qui prend en argument une fonction de comparaison ; on sépare ainsi l'algorithme de tri de la comparaison des éléments à trier.

D'autres exemples de fonction d'ordre supérieur incluent la composition de fonctions, l'intégration, et la fonction constante λxy.x.

Sommaire

Alternatives

Les langages de programmation peuvent obtenir les mêmes résultats algorithmiques que ceux qui sont obtenus par des fonctions d'ordre supérieur en exécutant dynamiquement du code dans la portée de l'évaluation. Cela se fait généralement par un appel à la commande eval ou à la commande execute. Malheureusement, cette approche a des défauts :

  • Le code argument à exécuter n'est généralement pas typé statiquement. Les langages évaluant dynamiquement du code dépendent du typage dynamique pour déterminer la correction et la sécurité du code à exécuter.
  • L'argument est généralement fourni sous la forme d'une chaine de caractères, chaine dont la valeur ne peut pas être connue avant le moteur d'exécution. La chaine doit être soit compilée durant l'exécution du programme (par du JIT) soit évaluée par l'interpréteur. Cela consomme plus de ressources à l'exécution.

On peut aussi utiliser des macros pour obtenir certains effets des fonctions d'ordre supérieur. Mais les macros ne peuvent généralement pas éviter le problème de capture de variable. Elles peuvent aussi donner lieu à une grande quantité de code dupliqué, qui peut être difficile à optimiser pour un compilateur. Les macros ne sont généralement pas typées, bien qu'elles puissent produire du code fortement typé.

Les objets d'un environnement de programmation orientée objet peuvent être utilisés comme des fonctions d'ordre supérieur. La méthode d'un objet agit essentiellement comme une fonction, et une méthode peut prendre des objets (contenant des méthodes) comme arguments et retourner des objets avec des méthodes. Malheureusement, les objets consomment souvent plus de ressources que des fonctions pures. La syntaxe du langage peut introduire des difficultés supplémentaires : un objet peut être créé pour contenir des paramètres qui sont des fonctions, et toute fonction résultante peut avoir un objet associé.

Voir aussi

Liens externes

Notes et références

  1. Une explication (brève) serait profitable au lecteur non spécialisé avec la notion de type et de flèche dans le contexte des fonctions d'ordre supérieur.
  • Portail des mathématiques Portail des mathématiques
  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Fonction d%27ordre sup%C3%A9rieur ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Fonctions d'ordre supérieur de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • Fonction D'ordre Supérieur — En mathématiques et en informatique, les fonctions d ordre supérieur ou les fonctionnelles sont des fonctions qui ont au moins une des propriétés suivantes : prendre une ou plusieurs fonctions comme entrée, renvoyer une fonction. En… …   Wikipédia en Français

  • Fonction d'ordre superieur — Fonction d ordre supérieur En mathématiques et en informatique, les fonctions d ordre supérieur ou les fonctionnelles sont des fonctions qui ont au moins une des propriétés suivantes : prendre une ou plusieurs fonctions comme entrée,… …   Wikipédia en Français

  • Fonction d'ordre supérieur — En mathématiques et en informatique, les fonctions d ordre supérieur ou les fonctionnelles sont des fonctions qui ont au moins une des propriétés suivantes : prendre une ou plusieurs fonctions comme entrée, renvoyer une fonction. En… …   Wikipédia en Français

  • Logique D'ordre Supérieur — Les logiques d ordre supérieur sont des logiques formelles qui étendent le calcul des prédicats du premier ordre en permettant d utiliser les variables dans les termes en tant que fonctions, et dans les expressions en tant que prédicats. D un… …   Wikipédia en Français

  • Logique d'ordre superieur — Logique d ordre supérieur Les logiques d ordre supérieur sont des logiques formelles qui étendent le calcul des prédicats du premier ordre en permettant d utiliser les variables dans les termes en tant que fonctions, et dans les expressions en… …   Wikipédia en Français

  • Logique d'ordre supérieur — Les logiques d ordre supérieur sont des logiques formelles qui étendent le calcul des prédicats du premier ordre en permettant d utiliser les variables dans les termes en tant que fonctions, et dans les expressions en tant que prédicats. D un… …   Wikipédia en Français

  • Logiques d'ordre supérieur — Logique d ordre supérieur Les logiques d ordre supérieur sont des logiques formelles qui étendent le calcul des prédicats du premier ordre en permettant d utiliser les variables dans les termes en tant que fonctions, et dans les expressions en… …   Wikipédia en Français

  • ordre — [ ɔrdr ] n. m. • 1080 sens II; lat. ordo, ordinis I ♦ (1155) Relation intelligible entre une pluralité de termes. ⇒ organisation, structure; économie. « L idée de la forme se confond avec l idée de l ordre » (A. Cournot). 1 ♦ Didact. Disposition …   Encyclopédie Universelle

  • ORDRE — s. m. Arrangement, disposition des choses mises en leur rang, à leur place. Bel ordre. Bon ordre. Merveilleux ordre. Ordre naturel. Ordre nécessaire. L ordre admirable que Dieu a mis dans cet univers. L ordre et l enchaînement des causes. L ordre …   Dictionnaire de l'Academie Francaise, 7eme edition (1835)

  • ordre — (or dr ) s. m. 1°   Disposition des choses selon des rapports apparents et constants, simples ou complexes. 2°   Ordre de succession, ordre dans lequel on hérite des biens, des dignités, de la couronne d un défunt. 3°   Ordre du jour dans les… …   Dictionnaire de la Langue Française d'Émile Littré

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”