This book is an introductory programming textbook for those using SML. It emphasizes mathematical structures, modelling and abstraction as a basis for programming, introducing students to formal methods concepts early. The authors concentrate on the basics of program design rather than on the design of efficient algorithms. The book has a dual purpose, firstly to teach program design based on a set of simple, clean & powerful concepts and secondly to teach the fundamental concepts of computer science in an informal but precise way.
- Attractive and reader-friendly presentation.
- Clear and careful explanations.
- A rich collection of programming problems and a wide variety of examples.
- Coverage of modelling and abstraction using data structures and the SML module system.
- Overview and statement of objectives at the start of each chapter.
- An introduction to producing technical documentation based on the SML module system.
- Extensive material in the appendices covering the SML language and module system and selected parts of the SML basis library.
- Accompanying Web Site supporting the book, containing all the program code, further teaching material and links to SML systems and other useful resources.
Table of Contents
- Getting Started
- Basic Values and Operators
- Tuples and Records
- Problem Solving I
- Problem Solving II
- Tagged Values. Partial Functions
- Finite Trees
- Higher-Order Functions
- Finite Sets
- Input/Output in SML
- Interactive Programs
- Problem Solving III
- Imperative Programming
A. SML systems B. Overview of Standard ML C. Overview of the SML module system D. Selected parts of the SML basis library E. Modules of sets and tables F. The ASCII alphabet