Exercise 2.83

Source code.

(define (raise x)     (apply-generic 'raise x))
...
...
; in the integer package
(put 'raise  '(integer) (lambda (n) (make-rational n 1)))
...
...
; in the rational package
(define (rational->real r) (make-real (/ (numer r) (denom r)))) 
(put 'raise  '(rational) rational->real)
...
...
; in the real package
(define (real->complex r) (make-complex-from-real-imag r 0)) 
(put 'raise  '(real) real->complex)
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s