5 a. application? only checks whether the given expression is a pair. It assumes that the rest of
6 the built in language clauses are already handled. So this will upset all other clauses like
7 define, let where Louis's eval would think define is a procedure and would proceed to evaluate
8 the operands, which is wrong.
16 We only change the selectors and the predicate procedures, everything else remain the same to
17 implement the new proposal.
21 (define (application? exp)
23 (tagged-list? expr 'call)
26 (define (operator exp) (car (cdr exp)))
27 (define (operands exp) (cdr (cdr exp)))