2008. 8. 5.

연습문제 2.79

(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))

댓글 없음:

댓글 쓰기