Ranked in these QuestionsQuestion Ranking
Pro Powerful module system
The module system that Standard ML uses gives the programmer the power to define custom data types whose internal implementation is invisible to other programmers using the module.
Pro Implementing laziness is trivial
Since mutability is only confined to a special type of reference cells, implementing laziness in SML can be done in only 20 lines of code.
Pro Enforces distinction between data and computations
Since it uses strict evaluation, it enforces distinction between data and computations which in turn enables you to use induction on algebraic data types as a reasoning principle.
Pro Great exception system
Secret messages can be sent across distant parts of a program without possibility of being intercepted by unintended recipients in the middle.
Con Not very popular outside academia
SML is mostly used in academia and doesn't have many uses in industry. While it's a good language for learning functional programming concepts, the language itself won't be very useful.