Make rational operators generic

This commit is contained in:
Oliver Payne 2022-04-15 14:53:05 +01:00
parent 70068faf4d
commit de39768f9d
1 changed files with 10 additions and 10 deletions

View File

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