Menu

- Chapter 1 Distilled
- Introduction
- 1.1 - The Elements Of Programming
- Expressions
- Naming and the Environment
- Evaluating Combinations
- Defining New Functions
- The Substitution Model
- Exercises
- Predicates
- Conditional Expressions
- Example: Newtonâ€™s Method
- Functions as Black-Box Abstractions
- 1.2 - Procedures and the Processes They Generate
- Linear Recursion and Iteration
- Tree Recursion
- Orders of Growth
- Exponentiation
- Example: Testing For Primality
- 1.3 Higher Order Functions
- Project - Blackjack

- Chapter 2 Distilled
- Introduction
- Data Abstraction
- Everything From Nothing
- Abstractions In Clojure
- Clojure's Data Structures
- Data Abstraction, Revisited
- Escher
- Project - Escher
- Symbolic Data
- Representing Sets
- Huffman Encoding Trees
- Zippers

Check out the code from Github

- Complete the vector functions

(you should be able to draw `(frame-painter frame1)`

then)

Complete the

`path`

functionDefine

`box`

,`x`

,`diamond`

and`george`

(using`segment-painter`

, you might want to use`path`

as well)

Check by drawing them either with `(draw <picture>)`

or `(<picture> <frame>)`

- Complete
`flip-horiz`

,`rotate`

,`above`

Check again that they each work and can be combined by (for instance)

```
(draw (above (beside george (flip-horiz george))
(beside (rotate george) (flip-vert george))))
```

Complete

`up-split`

Do the suggested refactor of

`right-split`

and`up-split`

in terms of the`split`

functionComplete

`image-painter`

You should check out the docs for Quil transform

Find some other escher tiles and see if you can capture the pattern of the orignal work with the functions we have

Check out this page from Frank Buss and see if you can use his tile shape for a perfect

`segment-painter`

Square Limit

- Can you do Circle Limit?

(Might want to search for 'escher hyperbolic')