Describir: Elements of functional programming / Chris Reade.