Live data from Hacker News

Programming in Standard ML (2011) [pdf]

cs.cmu.edu

11–20 of 20 posts

Re: Programming in Standard ML (2011) [pdf]

#11
post #4

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?

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...

Re: Programming in Standard ML (2011) [pdf]

#12
post #2

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.

I've not read it, but if it's by Robert Harper it's probably a highly reliable source of information.

Re: Programming in Standard ML (2011) [pdf]

#13
If you are interested in Standard ML, take a look at 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.

Re: Programming in Standard ML (2011) [pdf]

#14
post #9

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…

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.

Re: Programming in Standard ML (2011) [pdf]

#16
post #14
post #9

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…

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.

How does it compare to ML for the Working Programmer?

Re: Programming in Standard ML (2011) [pdf]

#17
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

EDIT: Btw, thanks for the book!

Re: Programming in Standard ML (2011) [pdf]

#18
post #16
post #14

Earlier quoted context omitted.

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.

How does it compare to ML for the Working Programmer ?

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.

Re: Programming in Standard ML (2011) [pdf]

#19
post #7
post #5

Earlier quoted context omitted.

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 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.

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

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.

Re: Programming in Standard ML (2011) [pdf]

#20
post #19
post #7

Earlier quoted context omitted.

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

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.

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.
Post reply on HN