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# 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` .
...à 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.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 :
func(...args) qui peut être utilisé à la place de apply.Lua
En Lua , la fonction apply peut s'écrire de cette manière :
apply is called call_user_func_array:R
In R, do.call constructs and executes a function call from a name or a function and a list of arguments to be passed to it:
valueWithArguments: method which takes an array of arguments:apply command