为整形和有理数都编写了相关得提升类型过程,同时加入公共方法raise x
(define (raise x) (apply-generic 'raise x))
//放到install-rational-package包下面
(put 'raise '(rational)
(lambda (x) (make-complex-from-real-imag (/ (numer x) (denom x)) 0)))
//放到install-scheme-number-package包下面
(put 'raise '(scheme-number)
(lambda (x) (make-rational x 1)))