Books

This page is a list of some of the books that I've found most useful in trying to understand this stuff.

Haskell books

Bird, Introduction to Functional Programming using Haskell
This is in my opinion the best introduction to Haskell.

Okasaki, Purely Functional Data Structures
Very good. The implementation language used in the book is StandardML, but Haskell translations are provided in an appendix.

Rabhi, Lapalme, Algorithms: A Functional Programming Approach
Has some interesting material on how to work out the complexity of functional algorithms - but the algorithms themselves don't go very far.

Maths books

Cox, Little, O'Shea, Ideals, Varieties and Algorithms
Nice introductory book at an easy undergraduate level.

Schenck, Computational Algebraic Geometry
A whirlwind tour which gives you a taster of several advanced aspects of the subject. It definitely makes it sound interesting, but I can't claim to understand it all yet.

Cameron, Combinatorics: Topics, Techniques, Algorithms
Excellent introduction. Advanced undergraduate or beginning postgraduate level.

Seress, Permutation Group Algorithms
The best source for Schreier-Sims algorithm. Contains many other algorithms too, which I might implement one day. Advanced.

Cohen, A Course in Computational Algebraic Number Theory
Excellent. Minor criticism: The pseudo-code assumes an imperative language, which sometimes makes the algorithms seem more complicated than they really are.

Koblitz, p-adic Numbers, p-adic Analysis, and Zeta-Functions
Excellent motivational text. Advanced undergraduate or beginning postgraduate.