NEXT
·
UP
·
PREVIOUS
·
INDEX
Brief contents
Introduction
Simple applicative programming
Higher-order programming
Types and type inference
Aggregates
Evaluation
Abstract data types
Imperative programming
Introducing Standard ML Modules
Contents in full
Contents
Introduction
Standard ML
Programming in practice
Reading material
Other information
Simple applicative programming
Types, values and functions
Defining a function by cases
Scope
Recursion
Scoping revisited
The Standard ML library
The Bool structure
The Byte structure
The Char structure
The Int structure
The Real structure
The String structure
The StringCvt structure
The Word and Word8 structures
Higher-order programming
Higher-order functions
Self-application
Curried functions
Function composition
Derived forms
Types and type inference
Type inference
Pairs and record types
Function types and type abbreviations
Defining datatypes
Polymorphism
Function composition
Default overloading
Ill-typed functions
Computing types
Aggregates
Lists
List processing
Selecting from a list
The
take
function
The
takewhile
function
Sorting lists
List functions
The
map
function
The
mapPartial
function
Left and right folding
The tree datatype
Converting trees to lists
The vector datatype
The Standard ML library
The List structure
The ListPair structure
The Vector structure
Evaluation
Call-by-value, call-by-name and call-by-need
Delaying evaluation
Forcing evaluation
From call-by-value to call-by-name
Lazy datatypes
An example: Computing the digits of
e
Abstract data types
Programming with abstract data types
Sets in the Standard ML library
Imperative programming
Assignment
Sequential composition
Iteration
Types and imperative programming
Type safety conditions
Implementing type safety
Arrays
Memoisation
Input/output
Introducing Standard ML Modules
Signatures
Structures
Representation independence and equality
Signature matching
References
Index
NEXT
·
UP
·
PREVIOUS
·
INDEX