Penguin
Note: You are viewing an old revision of this page. View the current version.

"Standard ML". A really neat "mostly functional" programming language.

The language and standard library of SML are formally defined in the book Definition of Standard ML. This is unusually thorough. (There is a copy at the WaikatoUniversity library.) The SML Basis Library (part of the standard) is said to be very well designed.
The Basis library is indeed very well designed, but for SML/NJ (one of the major SML compilers) it is poorly documented, making it somewhat difficult to use. --GianPerrone
The Basis Library pages I've linked to above seem adequate to me. Or those not what you are talking about? --GlynWebster

Literature

Why ''you'' want to program in ML - ML advocacy and information.

http://www.cs.cmu.edu/rwh/smlbook/ - Introductory text book.

Implementations

Standard ML of New Jersey is one of the most widely used SML compilers. It generates fast, stable native binaries and runs on a number of platforms. SML/NJ is also nice in terms of giving helpful error information at compile time and being widely supported. It has a nice interactive environment which allows you to easily tinker with things quickly (or use it as a desktop calculator if you are so inclined).

Moscow SML is a smaller, ByteCode interpreted SML that might be a better choice if you want to quickly download something to experiment with.

MLKit Another implementation - It's probably best to just stick with MLTon or SML/NJ unless you're interested in the "memory regions" aspect of the MLKit implementation.

MLton The best optimizing compiler for SML. It generates binaries which are often faster than those which gcc(1)'s produces for C++. It isn't as helpful as SML/NJ if you are new to SML, as its error messages are often slightly cryptic. The easy solution is to use SML/NJ whilst developing your program and then compiling any "release" version with MLTon.


CategoryProgrammingLanguages