Haskell ha una nozione di "funzioni generiche" che ha qualche apparente somiglianza con la comune lisc - non avendo né esperienza con Haskell né con la comune focalizzazione, potrei essere molto approssimativo qui. Ciò significa che è possibile definire una generica funzione to_string
per definire una rappresentazione stringa per tutti i tipi. Ovviamente, la funzione deve essere definita nei casi speciali, ma esiste una funzione to_string
la cui firma è α → string
.
I tipi cancellati in Haskell, così come sono in OCaml? In caso affermativo, in che modo l'implementazione delle "funzioni generiche" in Haskell differisce da quella del Common Lisp, dove i tipi sono dinamici e quindi non cancellati?
Capisco che i dettagli di implementazione siano specifici del compilatore, ma probabilmente ci sono disposizioni comuni a molte o tutte le implementazioni.