Lambda-calculus, Combinators and Functional Programming (Cambridge Tracts in Theoretical Computer Science, Band 4)