A HOPE TUTORIAL
Roger Bailey, Imperial College
Introducing functional programming
Functions in conventional languages:
Programming with functions
A simple Hope example - conditionals
Using functions that we've defined
A more interesting example - repetition
Another way of using functions
Other kinds of data
Data structures
Tuples and lists
Functions that define lists
Data structures as parameters
Pattern-matching
Simplifying expressions
Review
Making functions more powerful
Introducing polymorphic functions
Defining your own data types
Making data more abstract
Functions as data
Even more concise programs
Common patterns of recursion
Anonymous functions
Functions that create new functions
In conclusion
Roger Bailey <rb@doc.ic.ac.uk>