Discuter:Inférence de types
Un article de Wikipédia, l'encyclopédie libre.
L'article dit que le compilateur cherche le type le plus général. Cela me semble un contresens : le plus général est forcément Object ou un truc similaire. Le compilateur cherche au contraire le type le plus spécifique.
Par exemple, en Haskell :
Prelude> let i = 3 Prelude> :t i i :: Integer
L'interpréteur a choisi le type Integer, ce qui est logique.
Prelude> let foo x = x * 2 Prelude> :t foo foo :: (Num a) => a -> a
Ici, l'interpréteur a choisi pour x le type Num, plus général que Integer, parce que x n'est pas forcément un entier.
Si le compilateur cherchait réellement le type le plus général, il aurait choisi Num pour le premier exemple.
--Bortzmeyer 16 juin 2006 à 13:57 (CEST)