 Programs written in Standard ML consist of expressions to be evaluated, as opposed to statements or commands, although some expressions return a trivial "unit" value and are only evaluated for their side-effects.Like all functional programming languages, a key feature of Standard ML is the function, which is used for abstraction.For instance, the factorial function can be expressed as