Some Standard ML information :

[ Running/Obtaining SML | On-line Documentation | Books ]

[ Sample SML code | Typing in and running SML code | Debugging]



Running/Obtaining SML



On-line Tutorials/Guides/Documentation



Books

The two books mentioned by Prof Larus in class should provide enough information on SML for the assignment.

You can also check out the Literature section of the SML/NJ web site at Bell Labs for names of more books on ML.

For functional programming in general, you can try to get hold of Chris Reade's Elements of Functional Programming (this uses ML), Field & Harrison's Functional Programming or Richard Bird and Philip Wadler's Introduction to Functional Programming



Sample SML code

You can check out some of the sample code that comes with the SML/NJ 0.93 distribution. You can also check out the source code of the SML Standard Library. The on-line ML tutorials on the web-page provided by Prof Larus also contain sample ML code.



Typing in and running SML code



Debugging/Programming Environments

There is no debugger installed with SML/NJ as of present (it requires building a special version of the SML interpreter that can then interact with GNU Emacs), but SML isa strongly typed language and its type inference system is quite powerful and can capture a lot of errors and ambiguities. Furthermore, there is run-time checking so there's no way you can crash the system (except for an infinite loop of course). SML does provide you with references which are pointers (and hence dangerous :) ) but their use is deprecated as not being in the functional style.

Harlequin has come up with a GUI-based programming environment for ML called MLWorks -- unfortunately, it's not free :( ... around $750 for the Windows version and $2000 for the Unix versions (though academic discounts are available).