(define (equ-complex c1 c2)
(and (= (real-part c1) (real-part c2))
(= (imag-part c1) (imag-part c2))))
(put 'equ? '(complex complex)
(lambda (z1 z2) (equ-complex z1 z2)))
(define (equ-rat r1 r2)
(and (= (denom r1) (denom r2))
(= (number r1) (number r2))))
(put 'equ? '(rational rational)
(lambda (r1 r2) (equ-rat r1 r2)))
(put 'equ? '(scheme-number scheme-number)
(lambda (n1 n2) (= n1 n2)))
(define (equ? x y) (apply-generic 'equ? x y))

(and (= (real-part c1) (real-part c2))
(= (imag-part c1) (imag-part c2))))
(put 'equ? '(complex complex)
(lambda (z1 z2) (equ-complex z1 z2)))
(define (equ-rat r1 r2)
(and (= (denom r1) (denom r2))
(= (number r1) (number r2))))
(put 'equ? '(rational rational)
(lambda (r1 r2) (equ-rat r1 r2)))
(put 'equ? '(scheme-number scheme-number)
(lambda (n1 n2) (= n1 n2)))
(define (equ? x y) (apply-generic 'equ? x y))

댓글 없음:
댓글 쓰기