
ML for the working programmer
by Lawrence C. Paulson · first published 1991
38mentions
16recommended by
28HN commenters
2009–2025first – last mentioned
57% recommend32% neutral11% critical
Why HN recommends it
Teaches functional programming through Standard ML for programmers new to FP, covering the module system and ending with a toy theorem prover and lambda calculus interpreter.
Summarised by Claude from recommending comments
Affiliate links. As an Amazon Associate I earn from qualifying purchases.
Read freeOnline edition







…syntactically than OCaml, but OCaml brings so much to the table that it's hard to ignore (a simpler compilation model, niceties like named arguments, single development target, good community). Also Paulson's ML For the Working Programmer explains SML's warts well, in a historical context. It goes into great detail of some of the limitations of SML's module type safety and some of the nasty things you need to do to make functors generic…
on “MLton with Realtime GC and Threading Features” ↗Slightly crestfallen that the “ML” here is machine learning and not the programming language. I still refer to my vintage paperback of L. C. Paulson’s ML for the Working Programmer from time to time.
on “Experts recommend Machine Learning books” ↗A similar book to Concrete Semantics, which I love, is Formal Reasoning about Programs by the same group the OP link comes from: http://adam.chlipala.net/frap/frap_book.pdf ML for the Working Programmer is written by Paulson, one of the main persons behind Isabelle, and ends up with a prover project: https://www.cl.cam.ac.uk/~lp15/MLbook/ Paulson teaches an undergrad course in Cambridge which is now…
on “Untangling Mechanized Proofs” ↗…13-year-old with a good grasp of the infinitesimal calculus (SICP) or one that addresses you like an 11-year-old that barely understands elementary algebra (HtDP). Personally, I rather like Paulson's «ML for the Working Programmer», which assumes you're an adult who probably doesn't hold a degree in mathematics. Unfortunately, it's not freely available like the other two. If you decide to go with SICP, I recommend using either…
on “Show HN: Thi.ng/hdom – S-expression based, pure ES6 UI/VDOM components” ↗Larry C. Paulson - "ML for the working programmer" will have you thinking for years to come. It is meant for people who do know a programming language, but none of those an FP-lang. It covers Standard ML, but you will find that the ideas of FP are easy…
on “[Ask HN] Good book about functional programming?” ↗…but consult it when you need it. Furthermore, read the Dragon book (first one is enough) on compiler construction. Finally, learn to program in Standard ML, for example via the book by Larry Paulson (ML for the working programmer). That should be enough for the basic theory. If you got the above stuff under your belt, then this will take you pretty far. For the rest, rely on your mind and logic and feeling for elegance.
on “Ask HN: If you would have to choose one book what would it be?” ↗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…
on “Programming in Standard ML (2011) [pdf]” ↗Not that many options I think. A classic is Larry C Paulson's "ML for the Working Programmer", although it's (a) apparently a bit divisive (see e.g. https://news.ycombinator.com/item?id=9667264) and (b) out of print. It's a thoughtful treatment of functional programming that happens to use ML,…
on “Ask HN: What are the latest and greatest books on your favorite language?” ↗Ullman's book is really accessible and what introduced me to SML as well, but for those looking for something that goes a little deeper, do read "ML for the Working Programmer" by Lawrence Paulson (author of Isabelle). It has one of the best introductions to ML's module system and even covers building a (toy) tactical theorem prover. Oh, and it's now available online for free…
on “Ask HN: Best books under 200 pages for developers?” ↗I really liked SML and wanted to use it in anger after reading "ML for the working programmer" and "Purely functional data structures" (excellent functional programming books by the way) but just couldn't due to the lack of libraries as you say. For me the object system on Ocaml was just too…
on “Comparing OCaml and Standard ML” ↗I would also add "ML for the working programmer", which is, perhaps surprisingly, more about functional programming than the particularities of ML. In any case, it is a great book.
on “Ask HN: What are the best textbooks in your field of expertise?” ↗ML for the Working Programmer is also an excellent reference. It demonstrates the construction of a theorem prover. As a matter of fact, Isabelle was built with SML. There's also a famously concise intro to SML (in 22 pages!) by…
on “A Tour of Standard ML” ↗I absolutely love ML for the Working Programmer, but I think you have to see it as a philosophical text as much as a tutorial. To these points, I'd say 1. I find Emacs sml-mode is just about up to it. I do have complaints - I wish it would pull back…
on “Standard ML in 2020” ↗SML is probably my favourite programming language, and ML for the Working Programmer is probably my favourite programming book. It is indeed sad to think that I'll probably never use it seriously or even meet another SML programmer in my life (I met one at university in a larger city…
on “ML Dialects and Haskell: SML, OCaml, F#, Haskell” ↗ML for the Working Programmer is my favorite programming book! It's fantastic because it is serious and goes into great detail about practical matters in working with SML. Its treatment of SML's module system is without match. It…
on “ML for the Working Programmer, 2nd Edition (1996)” ↗