Introduction to Functional Programming in Scheme | Exercise 1.1 | Installing a Scheme System |

| Exercise 1.2 | Testing functional programs |

| Exercise 1.3 | A Proper List Predicate * |

| Exercise 1.4 | Construction of symbolic expressions * |

| Exercise 1.5 | Every second element of a list ** |

| Exercise 1.6 | Creation of association lists * |

| Exercise 1.7 | Association lists and property lists * |

| Exercise 1.8 | The get-prop function for property lists |

| Exercise 1.9 | Parameter passing in Scheme * |

| Exercise 1.10 | A calendar language - Some calendar functions **** |

| Exercise 1.11 | A counterpart to list-tail ** |

| Exercise 1.12 | The function butlast ** |

| Exercise 1.13 | Lexicographic photo file naming *** |

| Exercise 1.14 | A music language in Scheme **** |

| Exercise 1.15 | Group formation *** |

Recursion and Higher-order Functions | Exercise 2.1 | The append function ** |

| Exercise 2.2 | A list replication function ** |

| Exercise 2.3 | More about string-merge * |

| Exercise 2.4 | Sublists of a list ** |

| Exercise 2.5 | A variant of number-interval * |

| Exercise 2.6 | A variant of string-of-char-list? ** |

| Exercise 2.7 | Using `flip`, `negate`, and `compose` * |

| Exercise 2.8 | Linear string search ** |

| Exercise 2.9 | Index in list ** |

| Exercise 2.10 | Binary search in sorted vectors *** |

| Exercise 2.11 | Generating a C-style compare function ** |

| Exercise 2.12 | Higher-order functions in 'Functional Programming Languages' ** |

| Exercise 2.13 | Iterative mapping function ** |

| Exercise 2.14 | Table exercise: transposing, row elimination, and column elimination. ** |

| Exercise 2.15 | A straightforward filter function ** |

| Exercise 2.16 | Quantifier Functions ** |

| Exercise 2.17 | Playing with curried functions in Scheme * |

| Exercise 2.18 | Generation of functions with a very flexible signature *** |

| Exercise 2.19 | Generalization of curry-2 and curry-3 *** |

| Exercise 2.20 | Generalized compose *** |

| Exercise 2.21 | Generation of approximations to differentiated functions ** |

| Exercise 2.22 | The cartesian product of two sets ** |

| Exercise 2.23 | Powerset ** |

| Exercise 2.24 | Generation of get-prop |

Simulation of other Paradigms and Continuations | Exercise 3.1 | Points and Rectangle ** |

| Exercise 3.2 | Color Point Extensions *** |

| Exercise 3.3 | Representing HTML with objects in Scheme **** |

| Exercise 3.4 | A discriminant function in continuation passing style ** |

| Exercise 3.5 | Trampolining a recursive factorial function without tail calls?! ** |

| Exercise 3.6 | A variant of seesaw that completes both threads *** |

| Exercise 3.7 | Can you read and understand an expression with call/cc? ** |

| Exercise 3.8 | Capturing a continuation when traversing a list *** |

Evaluation Order and Infinite Lists | Exercise 4.1 | Finite streams |

| Exercise 4.2 | A stream of factorial numbers |

| Exercise 4.3 | Stream appending and stream merging |

| Exercise 4.4 | A stream of square root numbers |