\$ cd ~

# 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)