ML | |
---|---|
programlingvo • proceda programlingvo • funkcia programlingvo | |
Paradigmo: | plurparadigma: funkcia, ordonema |
Paradigmo(j): proceda programado • funkcia programado • ordonema programado | |
Aperis en: | 1973 |
Aŭtoro(j): | Robin Milner k.a. ĉe la Universitato de Edinburgo |
Programlingva(j) dialekto(j): | Standard ML, Caml, OCaml, F# |
Kreita sub la influo de: | ISWIM |
Havas influon sur: | Clojure, Coq, Cyclone, C++, Elm, F*, Haskell, Idris, Miranda, Nemerle, Opa, Erlang, Rust, Scala |
ML (angle Meta Language) estas ĝeneralcela funkcia programlingvoj. Ĝi radikas el Lisp, kaj taksitas kiel “Lisp kun tipoj”. Ĝi famas pro sia uzo de plurforma tipsistemo Hindley–Milner, kiu aŭtomate asignas la tipojn de la plejmulto de esprimoj sen postuli eksplicitajn tipnotojn, kaj certigas tipsekurecon – estas formala pruvo, ke bontipa ML-programo ne kaŭzas dumrulajn tiperarojn.[1] ML provizas modelkongruigon por funkciargumentoj, rubokolektado, obeema programado, voko-laŭ-valoro kaj curry-igo. Ĝi forte uzatas ĉe programlingva esplorado kaj estas unu el la malmultaj lingvoj tute specifigitaj kaj kontrolitaj per uzo de formala semantiko. Ĝiaj tipoj kaj modelkongruadoj igas ĝin bonsitua kaj ofte uzata por operacii sur aliaj formalaj lingvoj, kiel ĉe skribado de tradukiloj, aŭtomata teorempruvado kaj formalkontrolo.
Nuntempe estas kelkaj lingvoj en la familio ML; la tri plej elstaraj estas Standard ML (SML), OCaml kaj F#. Ideoj el ML influis grandan nombron de aliaj lingvoj, kiel Haskell, Cyclone, Nemerle, ATS kaj Elm.