2015/11/01

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)

© 2022 wat-aro