# ML

> functional programming language

**Wikidata**: [Q860654](https://www.wikidata.org/wiki/Q860654)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/ML_(programming_language))  
**Source**: https://4ort.xyz/entity/ml

## Summary

ML is a software application influenced by ISWIM.

## Summary
ML is a functional programming language developed by Robin Milner in 1973. It is known for its strong static typing and type inference capabilities, and has influenced many modern programming languages.

## Key Facts
- Developed by Robin Milner in 1973
- Classified as a functional programming language, procedural programming language, and programming language
- Features strong static typing and type inference
- Influenced by ISWIM
- Has 30 sitelinks across various language Wikipedias
- Part of the ML programming language family
- Used in academic and industrial applications

## FAQs

### Q: What does ML stand for?
A: ML stands for "Meta Language" or "Meta-Language," though it's commonly referred to simply as ML.

### Q: Who created ML and why?
A: Robin Milner created ML in 1973 while working on theorem proving at the University of Edinburgh. He designed it as a metalanguage for the LCF theorem prover.

### Q: What makes ML different from other programming languages?
A: ML is distinguished by its strong static typing with type inference, functional programming paradigm, and its use in theorem proving and formal verification.

## Why It Matters
ML represents a foundational development in programming language theory and practice. As one of the earliest successful functional programming languages, it demonstrated that strong static typing and type inference could be practical for real-world programming. Its influence extends far beyond its own use, having inspired numerous modern languages including Haskell, OCaml, F#, and Rust. ML's type system and functional programming concepts have become essential tools in software verification, compiler construction, and formal methods. The language proved that functional programming could be both expressive and efficient, helping to establish functional programming as a viable alternative to imperative approaches. Today, ML's descendants continue to be used in critical systems where correctness is paramount, from financial systems to aerospace software.

## Notable For
- Pioneering strong static typing with type inference
- Being one of the first successful functional programming languages
- Influencing the development of modern languages like Haskell, OCaml, and F#
- Its use in theorem proving and formal verification systems
- Establishing functional programming as a practical paradigm

## Body
### Development and History
ML was developed by Robin Milner at the University of Edinburgh in 1973 as part of the LCF (Logic for Computable Functions) theorem proving project. The language was designed to serve as a metalanguage for expressing proofs and manipulating mathematical formulas.

### Technical Characteristics
ML features a sophisticated type system with type inference, meaning the compiler can automatically deduce the types of most expressions without explicit type annotations. This combines the safety benefits of static typing with the convenience of dynamic typing. The language supports both functional and imperative programming paradigms, making it versatile for different programming tasks.

### Language Family and Derivatives
ML has spawned a family of related languages including Standard ML, OCaml, F#, and others. Standard ML, developed in 1983, became the most widely used dialect and established many of the conventions still followed in ML-family languages today. OCaml, created in 1996, extended ML with object-oriented features and has become particularly popular in industry.

### Applications and Influence
ML and its descendants are used in various domains including compiler construction, formal verification, financial systems, and academic research. The language's type system has influenced the design of many modern programming languages, and its concepts are taught in computer science curricula worldwide.

### Typing Discipline
ML employs static typing with type inference, strong typing, and polymorphism. The type inference system, based on Hindley-Milner type inference, allows programmers to write code without explicit type annotations while still catching type errors at compile time.

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "Thing",
  "name": "ML",
  "description": "Functional programming language developed by Robin Milner in 1973",
  "url": "https://en.wikipedia.org/wiki/ML_(programming_language)",
  "sameAs": [
    "https://www.wikidata.org/wiki/Q328",
    "https://en.wikipedia.org/wiki/ML_(programming_language)"
  ],
  "additionalType": "ProgrammingLanguage"
}

## References

1. [Source](https://github.com/JohnMarkOckerbloom/ftl/blob/master/data/wikimap)
2. Freebase Data Dumps. 2013
3. National Library of Israel