Qual è la connessione tra inferenza di tipo e sistemi di tipi avanzati?

1

Non capisco la connessione tra inferenza di tipo e sistemi di tipi avanzati. Non vedo perché Haskell o Standard ML o OCaml non possano esistere senza inferenza di tipo. La mia unica ipotesi è che l'inferenza di tipo avrebbe potuto essere una tendenza negli anni '70 quando ML uscì per la prima volta e le lingue discendenti mantennero quella capacità in aggiunta al compito principale del sistema di tipi che era quello di garantire la sicurezza del tipo. O forse il tipo di algoritmo di sicurezza ha anche dato facilmente la possibilità di inferire i tipi ed è stato incluso solo perché era semplice?

Stavo solo rileggendo l'articolo di wikipedia su Sistema F e indica che HM ha introdotto serie limitazioni al tipo sistema per ottenere l'inferenza di tipo funzionante. Questo è piuttosto sorprendente da leggere.

    
posta eatonphil 15.07.2016 - 18:41
fonte

1 risposta

6

What is the connection between type inference and advanced type systems?

Ci sono tre cose in cima alla mia testa:

  1. I progettisti di linguaggi interessati ai sistemi di tipo si concentreranno attorno al loro design linguistico. Ciò significa che tutti i tipi di funzionalità orientate al tipo sono stati considerati / implementati - l'inferenza è uno.
  2. ML ce l'aveva, quindi quando arrivarono le lingue di follow-up, iniziarono con quel progetto sia per familiarità, praticità o adattabilità.
  3. Una volta che inizi a entrare in sistemi di tipi più complessi, le tue annotazioni per i tipi iniziano a diventare sempre più complesse. Ciò aggiunge confusione all'utente e rumore al loro codice. È stata introdotta un'inferenza di tipo per combattere questo problema, migliorando l'usabilità del linguaggio.
risposta data 15.07.2016 - 19:20
fonte