Preface; 1. What is functional programming?; 2. Expressions, types and values; 3. Numbers; 4. Lists; 5. A simple Sudoku solver; 6. Proofs; 7. Efficiency; 8. Pretty-printing; 9. Infinite lists; 10. Imperative functional programming; 11. Parsing; 12. A simple equational calculator; Index.
This book introduces fundamental techniques for reasoning mathematically about functional programs. Ideal for a first- or second-year undergraduate course.
Richard Bird is Emeritus Professor of Computer Science at Oxford University Computing Laboratory and a Fellow of Lincoln College, Oxford. He has authored many books, including Algebra of Programming (1996) and Pearls of Functional Algorithm Design (Cambridge University Press, 2010).