ParametricModules (functors): Modules can take other modules as an argument. (As far as I know, this is unique for ML.) (AnswerMe: I've tried to research this on the web aeons ago, and my understanding of how functors work still eludes me. Can someone point a clueless n00b to a step-by-step tutorial or fill in the gaps on HowMlFunctorsWork ? Thanks!)
Unlike Haskell [HaskellLanguage] (and like LispLanguage and Scheme), ML is strict: the arguments to a function are always evaluated before evaluating the body of the function (see StrictEvaluation and LazyEvaluation).
There are three ML dialects in wide use: