Signature de type
Un article de Wikipédia, l'encyclopédie libre.
Une signature de type définit les types acceptables pour une fonction ou une méthode. Une signature inclut au moins le nom de la fonction et le nombre de paramètres. Dans certains langages, elle peut aussi spécifier le type de la valeur de retour et le type de ses paramètres.
[modifier] Haskell
Une signature de type en Haskell est généralement écrite dans le format suivant :
functionName :: arg1Type -> arg2Type -> ... -> argNType
Notez que la sortie finale peut être considérée comme un argument. C'est la conséquence de la curryfication.
Les spécifications de type peuvent consister en un type, tel que Integer
, ou une variable de type dans le cas de fonctions polymorphiques. En Haskell, ces variables de type peuvent être notamment "a", "b" ou "anyType", de sorte que l'on peut écrire :
Nom de fonction :: a -> a -> ... -> a
Puisque Haskell supporte des fonctions d'ordre supérieur, des fonctions peuvent être passées comme arguments. Ceci s'écrit comme suit :
NomDeFunction :: (a -> a) -> a
Cette fonction accepte une fonction avec comme signature de type a -> a
, et retourne des données de type a
.
[modifier] Java
Dans la machine virtuelle Java on utilise les signatures de type interne pour identifier les méthodes et les classes au niveau du code la la machine virtuelle.
Exemple: La méthode String String.substring(int, int)
est représentée comme java/lang/String/substring(II)Ljava/lang/String;
[modifier] Voir aussi
- Signature de méthode