The Definition of Standard ML
Optimal Representations of Polymorphic Types with Subtyping
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
ML strongly supports functional programming; its programmers tend to avoid operations with side effects. Thus, for example, instead of mutable arrays, ML programmers usually use lists. These lists behave much like those in Lisp, with the added requirement that all elements have the same type.1 ML lists are not themselves mutable, although the individual elements can be of a (uniform) mutable type. In Lisp terms, ML lists can optionally support RPLACA but not REPLACD. Although it is possible to define a type in ML that would support REPLACD as well, ML programmers usually don't do this unless they need it.