My copy of The Fun of Programming edited by Jeremy Gibbons and Oege de Moor came in the other day and I’ve been looking through it. It has chapters covering a wide range of topics:
functional data-structures, amortised analysis, etc.;
testing and specification with QuickCheck;
programming with folds, unfolds, etc.;
music programming;
representing financial contracts;
graphics programming;
hardware description;
combinators;
arrows; and
phantom types
amongst other topics. This looks to be a fascinating mixture of methods (data-structures, testing, folds, arrows, etc.) and applications (music, graphics, financial contacts, hardware description, logic programming, etc.) if a little thin for its price.
Both the software from the book and details about the symposium from which its content comes are available on the Oxford Computing Laboratory web-site.