Hi,
I’m going to work through
http://www.ccs.neu.edu/home/matthias/BTML/
and
http://www.cl.cam.ac.uk/~lp15/MLbook/
using
http://www.smlnj.org/
SLOWLY over MANY MONTHS.
The reason is that I’ve never learned a statically typed functional programming language, I feel weak on recursive data type definitions, and I am curious about compiler and interpreter construction. So, I’m looking for a way to learn about all 3 at once.
Why ML?
- Proven, excellent pedagogical language with great resources.
- Smaller than OCaml, F#, and Haskell; so I won’t get distracted with tons of “stuff”
- Puts me in a good position if I wanted to use it “for real” that OCaml, F#, Haskell, or even Scala and some other ML in Java languages would be a good follow up path in terms of leveraging the investment.
Basically when I sit down to learn the basics of anything from #2 I feel like they assume you know the basics of ML, and well, I don’t!
Let me know if you want to review problems together.
I can strongly recommend “Elements of ML Programming” by Ullman. It’s very clear, very well written, and (best of all) has a ton of examples and exercises.
Also, Bob Harper at CMU has recently posted an updated version of “Programming in Standard ML”, available at
http://www.cs.cmu.edu/~rwh/smlbook/
as part of CMU’s new “functional first, imperative later, OO optional” CS curriculum — he’s also been blogging his experiences with that curriculum, which makes a good read, and has some good ML content and background:
http://existentialtype.wordpress.com/
DSFDASFDS:
Thank you.
Here is another link, don’t recall the source:
http://www.cs.cornell.edu/riccardo/prog-smlnj/notes-011001.pdf