December 19, 2025
Applicative vs Normal Order Evaluation Chapter 1.1.5 is about substitution - comparing applicative-order evaluation and normal-order evaluation. It uses the following example, from the previous section:
1(define (f a) 2 (sum-of-squares (+ a 1) (* a 2))) There are two ways to evaluate this.
Applicative Order Evaluation Applicative-order evaluation means to evaluate the arguments before applying the procedure (or operator) to those arguments.
The body of the function is:
1(sum-of-squares (+ a 1) (* a 2)) If we were evaluating (f 5) we would substitute the argument 5 into the formal parameter a in the body of the function, giving us:
December 18, 2025
Refreshing Myself On the Basics I made some revisions this morning to how I’ll work through these exercises. Instead of running Racket in a Docker container, which was using way too much overhead, and taking forever to spin up, I just installed Racket directly on the VM and will run the Racket programs that way.
1sudo apt update && sudo apt install -y racket 2 3# install sicp package: 4raco pkg install --auto sicp 5 6# write racket program to do exercises 7vim exercises/chapter1-exercises.