Standard ML Standard ML Standard ML is a safe, modular, strict, functional, polymorphic programming language with compile-time type checking and type inference, garbage collection, exception handling, immutable data types and updatable references, abstract data types, and parametric modules. It has efficient implementations and a formal definition with a proof of soundness.
Strict evaluation makes it easier for the programmer to reason about the execution of the program.
Polymorphic ML supports polymorphic functions and data types. This makes programs more concise and easier to write. Garbage collection Automatic deallocation of unreachable data makes programs simpler, cleaner, and more reliable. This leads to some powerful guarantees of noninterference by different parts of the program operating on those data structures. Abstract data types ML supports information hiding, so that one can implement a data type whose representation is hidden by an interface that just exports functions to construct and operate on the type.