Robin Milner, en la Universidad de Edimburgo, desarrolla a partir de 1973 el lenguaje ML (Meta Language) como herramienta auxiliar para su sistema LCF (Logic for Computable Functions), diseñado para verificar demostraciones matemáticas asistidas por ordenador. ML introduce un sistema de inferencia de tipos completo y matemáticamente fundamentado —formalizado junto con Roger Hindley en lo que se conoce como algoritmo de Hindley-Milner— que permite al compilador deducir automáticamente el tipo de dato de cada expresión del programa sin que el programador tenga que declararlo explícitamente, garantizando al mismo tiempo que el programa esté libre de ciertos errores de tipo antes incluso de ejecutarlo. ML establece además, junto con Lisp, el paradigma de programación funcional como alternativa rigurosa a la programación imperativa dominante, tratando las funciones como valores de primera clase que pueden pasarse como argumentos o devolverse como resultado de otras funciones. El linaje de lenguajes que desciende directamente de ML —Standard ML, OCaml, F#, y de forma más indirecta Haskell— se convierte en territorio de referencia para la investigación en lenguajes de programación y en herramienta de producción en ámbitos que exigen alta fiabilidad, como sistemas financieros, compiladores y verificación formal de software crítico.