Programming in Standard ML (2011) [pdf]
cs.cmu.edu
cs.cmu.edu
Mlton is one of the few whole-program optimizing compilers. One time I wrote a DSL in Standard ML to analyze 100GB+ of memory-mapped data.
Thanks to Mlton, the result was very performant. Thanks to SML, I felt very productive and the result was pretty much bug-free. Highly recommended.
It probably helps that ML [Ullman uses SML/NJ] isn't much on ceremony to begin with. Yet somehow, I never feel like it needs more curly braces and semicolons.
I'd consider Ullman's ML book to be up there with K&R C and Wirth's books in conciseness and clarity. I suggest it to beginners specifically.
[1] http://flint.cs.yale.edu/flint/software.html
EDIT: Btw, thanks for the book!
Anybody have experience in applying it to larger problems?
[1] http://www.amazon.com/ML-Working-Programmer-2nd-Edition/dp/0...
SML has been on the higher ranks of my to-learn stack, because apparently it has some nice features Haskell does not, most notably I've heard great things about the module system.
Edit. Oh, and here's a previous discussion: https://news.ycombinator.com/item?id=2433860
The first language is ML and than moves to Racket. Really learned a ton just doing the first weeks. It is more of a CS 202 Programming Languages course which was perfect for me since I really wanted to learn more about functional programming.
There are plenty of suggestions here http://www.smlnj.org/doc/literature.html