Une autre présentation de la notion de fonction
167
9 Une autre présentation de la notion de fonction
A priori, on peut présenter la notion de fonction sous une forme théorique, indépendamment
de sa mise en œuvre dans les langages. En particulier, on peut dire qu’on cherche à réaliser
des « unités indépendantes » (nommées souvent procédures ou modules) disposant de possibilités de transmission d’informations par le biais de paramètres. Ces paramètres peuvent
théoriquement se classer en trois catégories :
• ceux dont la procédure peut exploiter la valeur, sans la modifier ; on les nomme
« paramètres d’entrée » ;
• ceux pour lesquels la procédure doit fournir une valeur ; on les nomme « paramètres de
sortie » ou « résultats » ;
• ceux dont la valeur peut être à la fois utilisée et modifiée par la procédure ; on les nomme
« paramètres d’entrée et de sortie ».
À ce niveau, on n’a pas encore introduit la notion de résultat (valeur de retour) et une
procédure s’appelle en lui fournissant simplement la liste de tous ses paramètres (entrée,
sortie, entrée-sortie). Mais on peut alors distinguer, parmi toutes ces procédures, celles qui ne
possèdent qu’un seul paramètre de sortie et en faire une catégorie à part qu’on nomme alors
fonctions. Ces dernières peuvent alors être utilisées avec une formulation de type
mathématique : le nom de la fonction avec ses paramètres (autres que le résultat) désigne
alors la valeur de retour.
Mais, au-delà de cette classification théorique, il faut ensuite mettre en œuvre ces concepts
dans un langage donné et recourir aux deux seules possibilités de transmission effectivement
utilisables : par valeur ou par référence. C’est pourquoi, historiquement parlant, cette mise en
œuvre s’est alors effectuée en ne conservant que deux classes de paramètres :
• paramètres d’entrée transmis par valeur ;
• paramètres de sortie ou d’entrée-sortie, transmis par référence.
D’autre part, les langages se sont mis à ne conserver que la seule notion de fonction (les premiers langages distinguaient les procédure des fonctions), en considérant que :
• une fonction pouvait ne fournir aucun résultat ;
• une fonction, même fournissant un résultat, pouvait voir certains de ses paramètres modifiés.
La notion de fonction s’est donc vue totalement généralisée et détournée de sa signification
d’origine (proche de la fonction mathématique), au point de devenir l’unique procédure des
langages actuels. C’est pour « coller au mieux » aux concepts utilisés maintenant dans ces
langages, que nous l’avons présentée ainsi dans cet ouvrage.
Précédent

- 190/370

Suivant