Exercise 2.83. Suppose you are designing a generic arithmetic system for dealing with the tower of types shown in figure 2.25: integer, rational, real, complex. For each type (except complex), design a procedure that raises objects of that type one level in the tower. Show how to install a generic raise operation that will work for each type (except complex). ———————————————————————————————————————————————————————————————————————— (define (int->rat n) (make-rat n 1)) (define (rat->real rat) (/ (numer rat) (denom rat))) (define (real->complex r) (make-from-real-imag r 0)) (put 'raise '(int) int->rat) (put 'raise '(rat) rat->real) (put 'raise '(real) real->complex) -- fixed in meeting: (define (int->rat n) (make-rat (contents n) 1)) (define (rat->real rat) (* 1.0 (/ (numer rat) (denom rat)))) (define (real->complex r) (make-from-real-imag (contents r) 0))