Types génériques
Il existe aussi des types génériques en Haskell qui permettent à certaines
fonctions d'être utilisées avec plusieurs types. Par exemple, la fonction
length qui calcule la longueur d'une liste, a pour type [a] -> Int,
ce qui signifie qu'elle prend en argument une liste de n'importe quel type
a et renvoie un entier.
De même, une fonction sum de type Num a => [a] -> a prend en argument
une liste de nombres de n'importe quel type a (entiers, réels, etc.) et
renvoie un nombre du même type.
Exemples
a: type quelconqueNum a => a: type numérique (Int, Integer, Ratio, Float, Double)Integral a => a: type entier (Int, Integer)Fractional a => a: type fractionnaire (Ratio, Float, Double)Floating a => a: type flottant (Float, Double)Ord a => a: type ordonnable (entiers, réels, caractères, ...)Eq a => a: type comparable (entiers, réels, booléens, caractères, ...)
INGInious