Haskell a une notion de «fonctions génériques» qui a une certaine similitude apparente avec le lisp commun - n'ayant aucune expérience avec Haskell ni avec le lisp commun, je pourrais être très approximatif ici. Cela signifie que l'on peut définir une fonction générique to_string
pour définir une représentation sous forme de chaîne pour tous les types. Bien sûr, la facilité doit être définie dans les cas particuliers mais il existe une to_string
fonction dont la signature est α → string
.
Les types sont-ils effacés dans Haskell, comme dans OCaml? Si oui, en quoi l'implémentation des «fonctions génériques» dans Haskell diffère-t-elle de celle du lisp commun, où les types sont dynamiques, et donc pas effacés?
Je comprends que les détails de l'implémentation sont spécifiques au compilateur, mais il existe probablement des dispositions communes à de nombreuses ou à toutes les implémentations.
a -> String
. Vous auriez plus probablement une contrainte de type, commeShow a => a -> String
.