SML was originally designed for developping proofs about first-order predicate calculus (read: computer programs)
and it can have a distinct academic feel about it.

However, its emphasis on immutability and strong typing has led SML to be used in many fields where program correctness is paramount (compiler design, code analysis, financial systems, medical systems, etc...).

Learning SML makes you a better programmer, because it forces you to write code that is stateless and to use closures
effectively.

It's also many programmers first introduction to pattern matching and (truely) strong typing. And because SML's type system is so strong and well-thought out, it often feels like you are working in a dynamically typed language instead.

Meet the Standard ML Track mentors

I've been a classroom teacher in compilers and various functional languages for five years. Having pure functions and isolation of side-effects are fundamental to separation of concerns. Strong, static types, type inference and algebraic types are hard for me to live without.

Meet the Standard ML Track maintainers

The Standard ML Maintainers are the brains behind the Standard ML Track. They spend their spare time creating interesting and challenging exercises that we can all learn from. We are incredibly grateful for their hard work. Here are the bios of a few of the maintainers of this track.

I've been a classroom teacher in compilers and various functional languages for five years. Having pure functions and isolation of side-effects are fundamental to separation of concerns. Strong, static types, type inference and algebraic types are hard for me to live without.

Get started with the Standard ML track. As with everything on Exercism, it's 100% free!