Make rational operators generic
This commit is contained in:
parent
70068faf4d
commit
de39768f9d
20
2_78.rkt
20
2_78.rkt
|
@ -251,19 +251,19 @@
|
|||
(define (denom x) (cdr x))
|
||||
(define (make-rat n d) (cons n d))
|
||||
(define (add-rat x y)
|
||||
(make-rat (+ (* (numer x) (denom y))
|
||||
(* (numer y) (denom x)))
|
||||
(* (denom x) (denom y))))
|
||||
(make-rat (add (mul (numer x) (denom y))
|
||||
(mul (numer y) (denom x)))
|
||||
(mul (denom x) (denom y))))
|
||||
(define (sub-rat x y)
|
||||
(make-rat (- (* (numer x) (denom y))
|
||||
(* (numer y) (denom x)))
|
||||
(* (denom x) (denom y))))
|
||||
(make-rat (sub (mul (numer x) (denom y))
|
||||
(mul (numer y) (denom x)))
|
||||
(mul (denom x) (denom y))))
|
||||
(define (mul-rat x y)
|
||||
(make-rat (* (numer x) (numer y))
|
||||
(* (denom x) (denom y))))
|
||||
(make-rat (mul (numer x) (numer y))
|
||||
(mul (denom x) (denom y))))
|
||||
(define (div-rat x y)
|
||||
(make-rat (* (numer x) (denom y))
|
||||
(* (denom x) (numer y))))
|
||||
(make-rat (mul (numer x) (denom y))
|
||||
(mul (denom x) (numer y))))
|
||||
(define (eq-rat x y)
|
||||
(and (= (numer x) (numer y))
|
||||
(= (denom x) (denom y))))
|
||||
|
|
Loading…
Reference in New Issue