ML, zkratka pro Meta Language, je univerzální funkční programovací jazyk. Je staticky vymezený, což znamená, že proměnná vždy odkazuje na své prostředí nejvyšší úrovně. ML lze označit jako nečistý funkční jazyk, protože umožňuje vedlejší účinky, které většina funkčních programovacích jazyků neumožňuje. Vedlejším účinkem je, když procedura změní proměnnou mimo její rozsah.
Stejně jako většina programovacích jazyků používá ML dychtivé vyhodnocení, takže výraz je vyhodnocen, jakmile je vázán na proměnnou. To je v přímém protikladu k línému hodnocení. Lenošného hodnocení však lze dosáhnout použitím uzávěrů. ML se používá pro metaprogramování nebo psaní programů, které manipulují s jinými programy. ML je známé pro své použití systému typů Hindley-Milner, který automaticky přiřazuje typy většiny výrazů bez nutnosti explicitních anotací typů a zajišťuje bezpečnost typu. ML se také používá pro:
- Vědecké aplikace
- Poskytovatelé vět
- Analyzátory, překladače a programovací jazyky
- Aplikace finančních systémů
- Bioinformatika a genealogické databáze
Vlastnosti ML
ML je přísně psaný jazyk, což znamená, že dobře napsaný jazyk nezpůsobí chyby typu runtime. Obsahuje automatický systém správy paměti prostřednictvím uvolňování paměti, takže paměť je automaticky přidělena a uvolněna kompilátorem. Je podporován parametrický polymorfismus, což znamená, že lze zapsat jednu polymorfní funkci, která převezme parametr libovolného kompatibilního typu. Mezi další funkce patří:
- Prvotřídní funkce
- Statické psaní
- Typ rušení
- Porovnávání vzorů pro funkční argumenty
- Zpracování výjimek
- Algebraické datové typy
ML je také zkratka pro strojové učení, typ analýzy dat, která využívá algoritmy k učení se z dat.