Skip to product information
1 of 1
Regular price £50.49 GBP
Regular price £56.99 GBP Sale price £50.49 GBP
Sale Sold out
Free UK Shipping

Freshly Printed - allow 8 days lead

Pearls of Functional Algorithm Design

This book takes a radical approach to algorithm design, namely, design by calculation.

Richard Bird (Author)

9780521513388, Cambridge University Press

Hardback, published 16 September 2010

290 pages, 20 b/w illus.
24.6 x 17.5 x 1.8 cm, 0.73 kg

'… an excellent guide into this method of algorithm development.' Journal of Functional Programming

Richard Bird takes a radical approach to algorithm design, namely, design by calculation. These 30 short chapters each deal with a particular programming problem drawn from sources as diverse as games and puzzles, intriguing combinatorial tasks, and more familiar areas such as data compression and string matching. Each pearl starts with the statement of the problem expressed using the functional programming language Haskell, a powerful yet succinct language for capturing algorithmic ideas clearly and simply. The novel aspect of the book is that each solution is calculated from an initial formulation of the problem in Haskell by appealing to the laws of functional programming. Pearls of Functional Algorithm Design will appeal to the aspiring functional programmer, students and teachers interested in the principles of algorithm design, and anyone seeking to master the techniques of reasoning about programs in an equational style.

Preface
1. The smallest free number
2. A surpassing problem
3. Improving on saddleback search
4. A selection problem
5. Sorting pairwise sums
6. Making a century
7. Building a tree with minimum height
8. Unravelling greedy algorithms
9. Finding celebrities
10. Removing duplicates
11. Not the maximum segment sum
12. Ranking suffixes
13. The Burrows–Wheeler transform
14. The last tail
15. All the common prefixes
16. The Boyer–Moore algorithm
17. The Knuth–Morris–Pratt algorithm
18. Planning solves the rush hour problem
19. A simple Sudoku solver
20. The countdown problem
21. Hylomorphisms and nexuses
22. Three ways of computing determinants
23. Inside the convex hull
24. Rational arithmetic coding
25. Integer arithmetic coding
26. The Schorr–Waite algorithm
27. Orderly insertion
28. Loopless functional algorithms
29. The Johnson–Trotter algorithm
30. Spider spinning for dummies
Index.

Subject Areas: Functional programming [UMJ]

View full details