Chapter 4, Metalinguistic Abstraction

Exercise 4.2


How do we check if something is an application? As per the code given, we do this by simply checking if it is a pair!

Thus if we follow the Louis’s idea then anything which is a pair will be considered as an application!


We just need to change the code for application? and selectors:

(define (application? exp) (tagged-list? exp 'call))
(define (operator exp) (cadr exp))
(define (operands exp) (cddr exp))