L’evoluzione del filone logico: programmazione funzionale
ML
- implementazione del l-calcolo tipato
- definizione di nuovi tipi ricorsivi
- i valori dei nuovi tipi sono termini, che possono essere visitati con un meccanismo di pattern matching (versione semplificata dell’unificazione)
- scoping statico (a differenza di LISP)
- semantica statica molto potente (inferenza e controllo dei tipi)
- un programma “corretto” per la semantica statica quasi sempre va bene
- gestione della memoria a heap con garbage collector
HASKELL
- ML con regola di valutazione “lazy”