Standard ML
- Implementations
- Standard ML of New Jersey (SML/NJ) — used for programming examples and exercises
- MLton
- MLKit
- PolyML
- SML Books
- ML for the Working Programmer, Lawrence Paulson
- Elements of ML Programming, Jeffrey Ullman
- The Definition of Standard ML (Revised), Robin Milner, Mads Tofte, Robert Harper, and David MacQueen — not for the faint of heart!
- Programming in Standard ML, Bob Harper
- SML Tutorials
- Standard ML Tutorial — slides from class
- Programming in Standard ML, Bob Harper
- Notes on Programming SML/NJ, Riccardo Pucella
- A Gentle Introduction to ML, Andrew Cumming
- Programming in Standard ML '97: An On-line Tutorial, Stephen Gilmore
- Libraries
- Standard ML Basis Library — use $/basis.cm in CM files
- SML/NJ Library — use $/smlnj-lib.cm in CM files
- Practice Exercises
- Tools
- Compilation Manager (CM): (pdf)
- SML Syntax
- Syntax of Standard ML by Tobias Nipkow and Larry Paulson (pdf).
- Coding standards
- Style Guide — these are useful (and common) conventions among SML programmers, but the are not required for submitted code
Haskell
- The Haskell Wiki: entry point to the Haskell online world, including installer downloads, tutorials, and library documentation.
- The Haskell Platform: this is the starting point for installing the Haskell compiler (GHC).
Papers and Presentations
- Why Functional Programming Matters by John Hughes.
- A Theory of Type Polymorphism in Programming, by Robin Milner, JCSS 1978.
- Principal type-schemes for functional programs by Luis Damas and Robin Milner, ACM POPL 1982.
Principal type-schemes for functional programs by Luis Damas and Robin Milner, ACM POPL 1982.- On Understanding Types, Data Abstraction, and Polymorphims by Luca Cardelli and Peter Wegner, ACM Computing Surveys, 1985.