Discussion:Inférence de types

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
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[modifier le code]

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)[répondre]