Exercise 4.3. Rewrite eval so that the dispatch is done in data-directed style. Compare this with the data-directed differentiation procedure of exercise 2.73. (You may use the car of a compound expression as the type of the expression, as is appropriate for the syntax implemented in this section.). ———————————————————————————————————————————————————————————————————————— (define (eval exp env) (cond ((self-evaluating? exp) exp) ((variable? exp) ((get 'eval 'variable) exp env)) ((pair? exp) (let ((specific-eval (get 'eval (car exp)))) (if specific-eval (specific-eval exp env) (apply (eval (operator exp) env) (list-of-values (operands exp) env)))))