**Exercise 1.34:** Suppose we define the procedure

```
(define (f g)
(g 2))
```

Then we have

```
(f square)
4
(f (lambda (z) (* z (+ z 1))))
6
```

What happens if we (perversely) ask the interpreter to evaluate the combination `(f f)`

? Explain.

```
(f f)
_ *** ERROR -- Operator is not a PROCEDURE_
```

The reasons this happens if clearer once we trace the evaluation steps:

```
(f f)
(f 2)
(2 2)
```

Since the leftmost side is not an operator but a number the interpreter doesn’t know what to do and hence gives the error above.