• [^] # Re: typage statique automatique ?

    Posté par (site web personnel) . En réponse au journal Typage statique pour Python. Évalué à 3.

    -- Un exemple de fonction qui est polymorphique
    afficherListe :: (Affichable a) => [a] -> String
    afficherListe = intercalate "," . map affiche

    Petite remarque pour ceux qui ne lisent pas l'haskell couramment. La fonction afficherListe prend une liste de a et renvoie une String. a marche pour n'importe quel Affichable, mais il faut bien noter que la liste ne peut contenir qu'un seul type et le même.

    En gros, si on a foo et bar des valeurs de type Foo et Bar, eux même instances de Affichable, on peut faire afficheListe [foo, foo, foo] ou afficherListe [bar, bar, bar] mais pas afficherListe [foo, bar].

    En gros ce n'est pas l'équivalent des appels virtuels en C++ ou de l'héritage en python, tout est résolu à la compilation et une instance spécifique de afficherListe est générée pour chaque a possible. (Ce n'est pas complètement vrai ;)

    La notion de polymorphisme à l'execution (i.e. héritage virtuel) est plus complexe en haskell...