
Programming in Standard ML (2011) [pdf] - networked
http://www.cs.cmu.edu/~rwh/smlbook/book.pdf
======
vtuulos
If you are interested in Standard ML, take a look at
[http://mlton.org/](http://mlton.org/)

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.

------
brudgers
I picked up a used copy of Jeff Ullman's _Elements of ML Programming_ a couple
of months ago for less than five bucks. It strikes me as compact and readable
in the K&R style, in that it doesn't get bogged down in the tedium of
regurgitated technical details or over emphasis on syntax.

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.

~~~
cle
_Elements of ML Programming_ stands out as one of my favorite programming
books. It's the best introduction to the ML style of languages (OCaml,
Haskell, SML, F#) that I've seen.

~~~
xjia
How does it compare to _ML for the Working Programmer_?

~~~
user543823
It's a muddled mess in comparison and I would not advise it to anyone over
Ullman's _Elements of ML Programming_ or Harper's _Programming in Standard
ML_. It's actually bad enough that it bothers me there's not more Standard ML
books out there so people would stop mentioning it.

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.

------
nickpsecurity
I took a liking to SML when working on a subversion-resistant development
process and software configuration management system. The security
requirements for tools was that verification of safe/secure usage is easy for
humans and the executable matches the source. SML, with restricted coding
style, is quite easy for humans to verify (vs C++) because of its syntax and
high-level style. For source-to-binary verification, I found that the FLINT
[1] team had a certifying compiler for SML along with verification of all
sorts of stuff. The probability of it being backdoored was extremely slim and
source was available. So, there you have it: SML & FLINT as solution to
bootstrapping a subversion-resistant toolchain for use by mutually suspicious
parties.

[1]
[http://flint.cs.yale.edu/flint/software.html](http://flint.cs.yale.edu/flint/software.html)

EDIT: Btw, thanks for the book!

------
zelos
I just started looking at Standard ML so I could understand the examples in
Purely Functional Data Structures. There's something very pleasing in the
simplicity of its syntax.

Anybody have experience in applying it to larger problems?

~~~
marktangotango
That is a fantastic book, also 'ML for the working programmer' is really good
[1]. I always wanted to use SML in anger, but the lack of third party
libraries is a major hindrance. Today I think one is better served using
OCaml, F#, or Clojure (this is not intended to be an exhaustive list) if a
highly productive functional language is desired.

[1] [http://www.amazon.com/ML-Working-Programmer-2nd-
Edition/dp/0...](http://www.amazon.com/ML-Working-Programmer-2nd-
Edition/dp/052156543X)

------
anonu
I remember 15-212 at CMU. That was a killer course...

------
quchen
A bit of context would be nice. Is this the go-to book to learn SML, or just a
random source?

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.

~~~
baldfat
I am working through this coursea course via YouTube and I also found some
github repos that have the course's homework material.
[https://www.coursera.org/course/proglang](https://www.coursera.org/course/proglang)

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.

~~~
brudgers
I took the second live offering of Dan Grossman's class on Coursera in fall
2013. There was another in the last year, so if the pattern holds, there would
be another in the next few months or so.

[https://www.coursera.org/course/proglang](https://www.coursera.org/course/proglang)

~~~
baldfat
I sure hope so I really liked his style. At first I was like oh no another
syntax is 75% of material, but it ended up being described and explained
clearly.

~~~
brudgers
The best part of the course for me was that it gave me an excuse to learn
Emacs and a framework in which to do it. Painful no doubt, but now I have
become spoiled.

------
swagmeister
interested in sml ppl can find stuff here, i think these are the new cmu
courses noob - 15-150 intermediate - 15-210 advanced - 15-411 might have to
email somebody at cmu to get the lecture notes dump

