2.83 Exercise 2.83
This is half-baked
(define (install-raise-package) (define (raise-integer-rational x) (attach-tag 'rational (make-rational x 1))) (define (raise-rational-real x) (attach-tag 'real (make-real (/ (numer x) (denom x))))) (define (raise-real-complex x) (attach-tag 'complex (make-complex-from-real-imag x 0))) (put 'raise 'integer raise-integer-rational) (put 'raise 'rational raise-rational-real) (put 'raise 'real raise-real-complex)) (define (raise x) ((get 'raise (type-tag x)) x))