FYI for everyone: This is not about Machine Learning. It is about a programming language called Standard ML where ML stands for Meta Language[1].
My favorite bit of SML trivia: the infix function composition operator is “o” — lowercase letter o — so you can write ‘(f o g)(x)’ just like mathematical notation.
Note that these lectures are from 1989, but the definition of Standard ML was revised in 1997. See, e.g., https://www.smlnj.org/sml97.html.
Defiantly worth studying SML imo. Pattern matching is a cool feature. Although it's not as comprehensive as most of the pattern matchers in Lisp. You can't match on bitfields, comparisons other than equality by value, etc.
Datatypes are just ok. Classes would be better. It's sort of strange to represent lists (and everything else) as enumerations. It's not really essential or fundamental but I guess that's what Lisp is for.
We used SML in my undergrad compilers course. I really loved the language and I started exploring other languages outside of class after that.
My CS degree course used SML as the first language to teach everyone in the first semester. Put everyone on the same level, as it was unlikely people would have prior experience. Also made it easy to teach things like recursion.
Really enjoyed it.
Studying SML should be part of the entry examination for programming language designers. It's old, has its warts, but is still vastly superior to most things that came later. (Type inference? check! Pattern matching? check! TCO? check!. Performance ? excellent!, ...)