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 (denom x) (cdr x))
|
||||||
(define (make-rat n d) (cons n d))
|
(define (make-rat n d) (cons n d))
|
||||||
(define (add-rat x y)
|
(define (add-rat x y)
|
||||||
(make-rat (+ (* (numer x) (denom y))
|
(make-rat (add (mul (numer x) (denom y))
|
||||||
(* (numer y) (denom x)))
|
(mul (numer y) (denom x)))
|
||||||
(* (denom x) (denom y))))
|
(mul (denom x) (denom y))))
|
||||||
(define (sub-rat x y)
|
(define (sub-rat x y)
|
||||||
(make-rat (- (* (numer x) (denom y))
|
(make-rat (sub (mul (numer x) (denom y))
|
||||||
(* (numer y) (denom x)))
|
(mul (numer y) (denom x)))
|
||||||
(* (denom x) (denom y))))
|
(mul (denom x) (denom y))))
|
||||||
(define (mul-rat x y)
|
(define (mul-rat x y)
|
||||||
(make-rat (* (numer x) (numer y))
|
(make-rat (mul (numer x) (numer y))
|
||||||
(* (denom x) (denom y))))
|
(mul (denom x) (denom y))))
|
||||||
(define (div-rat x y)
|
(define (div-rat x y)
|
||||||
(make-rat (* (numer x) (denom y))
|
(make-rat (mul (numer x) (denom y))
|
||||||
(* (denom x) (numer y))))
|
(mul (denom x) (numer y))))
|
||||||
(define (eq-rat x y)
|
(define (eq-rat x y)
|
||||||
(and (= (numer x) (numer y))
|
(and (= (numer x) (numer y))
|
||||||
(= (denom x) (denom y))))
|
(= (denom x) (denom y))))
|
||||||
|
|
Loading…
Reference in New Issue