Text this: Elements of functional programming / Chris Reade.