Skip to main content

Qu'est-ce qu'une fonction de première classe?

La fonction de première classe est un terme qui peut être appliqué dans la programmation informatique et l'informatique à un langage de programmation informatique si son traitement des fonctions adhère à un ensemble de directives, bien que la portée et la profondeur complètes de ces directives ne soient pas officiellement convenues.Pour avoir un langage de programmation informatique de fonction de première classe, la principale fonctionnalité qui doit être prise en charge est la possibilité de passer les fonctions comme arguments à d'autres fonctions.Une fonction doit également pouvoir être affectée à une variable afin qu'elle puisse être stockée.D'autres propriétés utilisées pour déterminer ce qui constitue une fonction de première classe comprend la capacité de générer dynamiquement une fonction à l'exécution et la capacité du langage pour avoir une fonction en tant que valeur de retour d'une autre fonction.Les langues qui prennent en charge l'architecture de fonction de première classe permettent un haut niveau d'abstraction et, dans certains cas, fournissent un mécanisme pour la génération de code dynamique d'exécution.

Lorsque le terme fonction est utilisé dans un sens vaguement défini, le concept de concept dePasser une fonction dans un programme via des variables n'est pas nécessairement unique aux langues qui implémentent nativement la prise en charge de la fonction de première classe.La possibilité de passer des blocs de code aux fonctions ou de renvoyer du code non dynamique d'une fonction peut facilement être effectué dans de nombreux langages de programmation via différents mécanismes.Cependant, l'une des parties strictes de la définition d'un langage de fonction de première classe est que la gestion des fonctions comme variables doit être effectuée nativement, sans utiliser de métadonnées telles que les définions conditionnelles et sans appeler un compilateur pour recompiler un morceau decode.Le terme fonction est également utilisé pour désigner les blocs de code indépendants qui sont appelés seuls, ce qui signifie qu'ils n'incluent pas les blocs de code appelés méthodes dans les langages de programmation orientés objet ou les blocs parfois appelés procédures dans d'autres langues.

Lorsqu'une langueest conçu pour permettre le code de fonction de première classe, certains modèles de conception peuvent être implémentés plus directement que dans d'autres langues.Une fonction peut recevoir une fonction en tant que variable, puis construire une nouvelle fonction et renvoyer la nouvelle fonction au code d'appel, ce qui crée un mécanisme pour la création d'exécution du code de programme.Cela peut également rendre l'utilisation de fonctions introduites par l'utilisateur en temps réel dans la langue sans utiliser de processus tels que la réflexion ou l'évaluation.

Certaines des utilisations les plus élémentaires de l'architecture de fonctions de première classe comprennent la création de fonctions génériques qui peuvent facilementêtre réutilisé et mettre en œuvre des algorithmes mathématiques récursifs qui sont capables d'auto-modifier leurs équations au fur et à mesure de leur progression.Une utilisation similaire et plus avancée pour les mécanismes de première classe est la mise en œuvre du polymorphisme dans les langues dans lesquelles il n'est pas spécifiquement mis en œuvre.Cela peut permettre aux fonctions d'être appelées avec la même signature de fonction mais exécuter du code en fonction du contexte dans lequel il a été appelé, parfois en passant une fonction clé à la fonction polymorphe.