SICP 問題 2.83
(define (raise x) (apply-generic 'raise x)) ;; scheme-numberパッケージで (define (scheme-number->rational n) (make-rational n 1)) (put 'raise 'scheme-number scheme-number->rational) ;; rationalパッケージで (define (rational->real x) (/ (* 1.0 (numer x)) (denom x))) (put 'raise 'rational rational->real) ;; real-numberパッケージで (define (real->complex) (make-complex-from-real-imag x 0)) (put 'raise 'real-number real->complex)