Discussion:Inférence de types
Dernier commentaire : il y a 18 ans par Bortzmeyer dans le sujet Général vs spécifique
Autres discussions [liste]
- Admissibilité
- Neutralité
- Droit d'auteur
- Article de qualité
- Bon article
- Lumière sur
- À faire
- Archives
- Commons
Général vs spécifique
modifierL'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.