An Introduction to Functional Programming Through Lambda Calculus
An Introduction to Functional Programming Through Lambda Calculus
An Introduction to Functional Programming Through Lambda Calculus
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
- 211 -Chapter 3 - Conditions, booleans and integersBurge 10 , Field and Harrison 18 , Glaser, Hankin and Till 21 , Henson 31 , Revesz 46 and Wegner 55 all have accountsof aspects of the material on conditional expressions and booleans. Schmidt 49 and S<strong>to</strong>y 51 cover it in exercises.There are many approaches <strong>to</strong> representing numbers. The approach here is discussed by Barendregt 5 , andGlaser, Hankin and Till 21 , and also by Revesz 46 in an exercise. Field and Harrison 18 and Wegner 55 discussvariants. Church’s representation is discussed by Barendregt 5 , Burge 10 , Henson 31 , Revesz 46 , and Wegner 55 .Chapter 4 - RecursionBarendregt 5 , Brady 9 , Glaser, Hankin and Till 21 , Henson 31 , Pey<strong>to</strong>n-Jones 43 , Revesz 46 and S<strong>to</strong>y 51 all discuss thederivation of the ‘recursion’ function. Field and Harrison 18 present it. Schmidt 49 presents it in an exercise.Burge 10 discusses it in terms of combina<strong>to</strong>rs.Kleene 36 Mendelson 38 , Peter 42 , and Rayward-Smith 45 provide accounts of the construction of arithmetic andcomparison operations within recursive function theory. Brief computing oriented accounts are in Burge 10 andGlaser, Hankin and Till 21 .Chapter 5 - TypesThe approach <strong>to</strong> types considered here is a λ calculus implementation of run-time typing with tags. Abelson andSussman 1 discuss a related Scheme approach <strong>to</strong> manifest types, and Henderson 30 and Pey<strong>to</strong>n-Jones 43 discussimplementations of typing.Field and Harrison 18 and Pey<strong>to</strong>n-Jones 43 contain thorough accounts of type checking.Chapter 6 - Lists and stringsBird and Wadler 6 , Henderson 30 , Henson 31 and Revesz 46 contain thorough accounts of lists from a functionalprogramming perspective.Numerous books on LISP contain material on list processing and mapping functions. Wilensky 57 provides anaccessable introduction.Chapter 7 - Composite values and treesThe use of lists <strong>to</strong> represent composite values is discussed implicitly in numerous books on LISP.Henderson 30 and Queinnec 44 discuss accumulation variables.Abelson and Sussman 1 and Shapiro 50 discuss the list representation of binary trees in Scheme and LISPrespectively.Bird and Wadler 6 provides a thorough account of trees from a functional language perspective.Chapter 8 - EvaluationBarendregt 5 and Hindley and Seldin 32 contain formal details of reduction. There are more accessableapproaches in Brady 9 , Burge 10 , Field and Harrison 18 , Glaser, Hankin and Till 21 , Henson 31 , Pey<strong>to</strong>n-Jones 43 ,Revesz 46 , S<strong>to</strong>y 51 , and Wegner 55 . Note that Barendregt, Burge, Field and Harrison, Hindley and Seldin, andWegner only name one Church-Rosser theorem.