Article de reference

Application fonctionnelle

En mathématiques , l'application (ou l'évaluation ) d'une fonction consiste à prendre une fonction et une entrée de son domaine pour obtenir la valeur correspondante de son imag...

mathématiques , l'application (ou l'évaluation ) d'une fonction consiste à prendre une fonction et une entrée de son domaine pour obtenir la valeur correspondante de son image . En ce sens, l'application d'une fonction peut être considérée comme l'inverse de l'abstraction d'une fonction .

Elle est essentielle aux langages de programmation dérivés du lambda-calcul , tels que LISP et Scheme , ainsi qu'aux langages fonctionnels . Elle joue un rôle dans l'étude de la sémantique dénotationnelle des programmes informatiques, car il s'agit d'une fonction continue sur les ordres partiels complets . L'application de fonctions est également une fonction continue en théorie de l'homotopie et, de fait, elle sous-tend toute la théorie : elle permet de considérer une déformation homotopique comme un chemin continu dans l'espace des fonctions. De même, les mutations (refactorisations) valides des programmes informatiques peuvent être vues comme celles qui sont « continues » dans la topologie de Scott .

parenthèses . Par exemple, l'expression suivante représente l'application de la fonction ƒ à son argument x .

Dans certains cas, une notation différente est utilisée lorsque les parenthèses ne sont pas nécessaires, et l'application de la fonction peut être exprimée par simple juxtaposition . Par exemple, l'expression suivante peut être considérée comme identique à la précédente :

Cette dernière notation est particulièrement utile en combinaison avec l' isomorphisme de curryfication . Étant donné une fonction , son application est représentée par avec la première notation et par (ou avec l'argument écrit entre crochets, moins courant) par la seconde. Cependant, les fonctions curryfiées peuvent être représentées en juxtaposant leurs arguments : , plutôt que . Ceci repose sur l'associativité à gauche de l'application de fonctions .

Lorsque la notation mathématique est représentée dans un document numérique, les caractères Unicode invisibles de largeur nulle opérateur , appelé apply ou , par la définition suivante :

L'opérateur peut également être désigné par une apostrophe inversée (`).

Si l'opérateur est considéré comme ayant une faible priorité et étant associatif à droite , l'opérateur d'application peut être utilisé pour réduire le nombre de parenthèses nécessaires dans une expression. Par exemple :

peut être réécrit comme suit :

Cela peut s'exprimer de manière équivalente en utilisant la composition de fonctions comme suit :

ou même :

si l'on considère qu'il s'agit d'une fonction constante renvoyant .

théorie des ensembles

En théorie des ensembles axiomatiques , en particulier en théorie des ensembles de Zermelo-Fraenkel , une fonction est souvent définie comme une relation ( ) ayant la propriété que, pour tout , il existe un unique tel que .

On ne se contente généralement pas d'écrire « » pour spécifier que , et on souhaite généralement utiliser la notation de fonction plus courante « ». L'application de fonction, ou plus précisément la notation « », n'est pas présente dans la signature habituelle de la théorie des ensembles, mais peut être ajoutée à la théorie comme symbole de fonction binaire si nécessaire, sans aucune perte d'expressivité, en définissant :

Ou, plus formellement :

où désigne l'exponentiation d'ensemble : l'ensemble de toutes les fonctions de à .

En prose : s’il existe un domaine et une image tels que soit une fonction de à et ; ou (la négation de ce qui précède) et . Le choix d’utiliser l’ ensemble vide lorsque est indéfini est arbitraire afin de garantir que la notation définie pour l’ensemble du domaine de discours reste valable .

Si désigne la formule du membre de droite de la biconditionnelle ci-dessus, pour deux ensembles quelconques, la formule associe un objet unique : . Par conséquent, le langage de la théorie des ensembles peut utiliser une extension par définition pour inclure l'opération d'application de fonction de manière conservative .

Programmation

En programmation informatique, l'application d'une fonction fait souvent référence à l'appel ou à l'exécution d'une procédure, plutôt qu'à une véritable fonction mathématique (voir fonctions en programmation informatique ), avec des règles similaires pour son comportement.

L'application de la fonction correspond à la réduction bêta dans le lambda-calcul .

Fonction d'application

Liée à l'opérateur `apply`, la fonction `apply` applique une fonction à une liste variable d'arguments. `eval` et `apply` sont les deux composantes interdépendantes du cycle `eval-apply` en Lisp, décrit dans SICP . Ce mécanisme est pris en charge dans les langages disposant de fonctions variadiques , car c'est le seul moyen d'appeler une fonction avec un nombre d'arguments indéterminé (à la compilation).

Common Lisp et Scheme

En Common Lisp, apply est une fonction qui applique une fonction à une liste d'arguments (notez ici que "+" est une fonction variadique qui prend un nombre quelconque d'arguments) :

C++ , Bind est utilisé soit via l'espace de noms std, soit via l'espace de noms boost.

C# et Java

En C# et Java , les arguments variadiques sont simplement regroupés dans un tableau. L'appelant peut explicitement passer un tableau à la place des arguments variadiques. Ceci n'est possible que pour un paramètre variadique. Il est impossible d'appliquer un tableau d'arguments à un paramètre non variadique sans utiliser la réflexion . Un cas ambigu se présente si l'appelant souhaite passer un tableau lui-même comme argument plutôt que de l'utiliser comme une liste d'arguments. Dans ce cas, l'appelant doit convertir le tableau en `int` pour Objectempêcher le compilateur d'utiliser l' interprétation `apply` .

Go , les arguments variadiques typés sont simplement regroupés dans une tranche. L'appelant peut explicitement passer une tranche à la place des arguments variadiques, en ajoutant un `true` ...à l'argument de tranche. Ceci n'est possible que pour un paramètre variadique. L'appelant ne peut pas appliquer un tableau d'arguments à des paramètres non variadiques sans utiliser la réflexion.

, "bar" } variadFunc ( s ... )

JavaScript

En JavaScript , les objets fonctionnels possèdent une applyméthode ; le premier argument est la valeur du thismot-clé à l’intérieur de la fonction ; le second est la liste des arguments :

ES6 ajoute l'opérateur de décomposition func(...args) qui peut être utilisé à la place de apply.

Lua

En Lua , la fonction apply peut s'écrire de cette manière :

Perl , les tableaux, les tables de hachage et les expressions sont automatiquement « aplatis » en une seule liste lorsqu'ils sont évalués dans un contexte de liste, comme dans la liste d'arguments d'une fonction.

PHP , applycela s'appelle call_user_func_array:

Python et en Ruby , la même notation avec astérisque utilisée pour définir les fonctions variadiques est utilisée pour appeler une fonction respectivement sur une séquence et un tableau :

dépréciée au profit de l'astérisque dans la version 2.3 et supprimée dans la version 3.0.

R

En R , do.callla fonction `function` construit et exécute un appel de fonction à partir d'un nom ou d'une fonction et d'une liste d'arguments à lui transmettre :

Smalltalk , les objets de type bloc (fonction) possèdent une valueWithArguments:méthode qui prend un tableau d'arguments :

Tcl 8.5, une fonction peut être appliquée aux arguments avec la applycommande

fonction , c'est-à-dire , où la notation entre crochets désigne l' espace des fonctions de A vers B. Par curryfication , il existe une unique fonction . Alors Apply fournit le morphisme universel

propriétés topologiques

En théorie des ordres , dans la catégorie des ordres partiels complets munis de la topologie de Scott , les fonctions curry et apply sont continues (c’est-à-dire qu’elles sont continues au sens de Scott ). Cette propriété contribue à établir la validité fondamentale de l’étude de la sémantique dénotationnelle des programmes informatiques.

En géométrie algébrique et en théorie de l'homotopie , les fonctions curry et apply sont continues lorsque l'espace des fonctions continues de vers est muni de la topologie ouverte compacte et est localement compact et Hausdorff . Ce résultat est fondamental car il sous-tend la théorie de l'homotopie, permettant d'interpréter les déformations homotopiques comme des chemins continus dans l'espace des fonctions.

Autres cas

La correspondance Curry–Howard relie l’application de la fonction à la règle logique du modus ponens .