ML (linguaggio di programmazione): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Robykiwi (discussione | contributi)
Nessun oggetto della modifica
m typo
Riga 1:
'''ML''' è l'[[acronimo]] che identifica un [[linguaggio di programmazione]] funzionale general-purpose sviluppato dall'equipe di Robin Milner presso l'[[Università di Edimburgo]] alla fine degli anni 70, con una sintassi ispirata ad [[ISWIM]]. Storicamente, ML sta per '''M'''eta'''L'''inguaggio visto che era nato per la verifica formale attraverso il theorem prover LCF (il linguaggio di cui ML rappresentava il livello meta era [[pplambda]], una combinazione di [[Logica del primo ordine|calcolo dei predicati del primo ordine]] e [[Lambda calcolo|lambda-calcolo]] polimorfico debolmente tipizzato). Tra i linguaggi di programmazione funzionali è tra i più noti per il suo utilizzo dell'[[algoritmo]] di inferenza dei tipi di Hindley-Milner, che riesce ad inferire quasi tutti i tipi senza bisogno di dichiarazioni.
 
ML viene definito come linguaggio funzionale impuro, perché a differenza di altri linguaggi funzionali, come ad es. [[Haskell (linguaggio)|Haskell]], consente la programmazione imperativa, e pertanto anche effetti collaterali.
 
Le caratteristiche principali di ML sono le seguenti: valutazione delle espressioni con [[chiamata per valore]], gestione automatica della memoria attraverso un meccanismo di [[garbage collection]], [[polimorfismo (informatica)|polimorfismo]] parametrico, tipizzazione statica, inferenza dei tipi, tipi di dati algebrici, [[pattern matching]] e gestione delle eccezioni.