SICP Exercise 1.34
Out f procedure is defined as:
(define (f g) (g 2))
Trying to ask the interpreter to evaluate (f f):
> (f f) . . application: not a procedure; expected a procedure that can be applied to arguments given: 2 arguments...:
The first time f is invoked, it will apply its argument (f) to 2. The second time it will try to apply its argument (2) to 2.
(f f) (f 2) (2 2)