2.1.1 Arithmetic Operations for Rational Numbers
(make-rat <n> <d>)
returns the rational number whose numerator is the integer <n>
and whose denominator is the integer <d>
.(numer <x>)
returns the numerator of the rational number <x>.(demon <x>)
returns the denominator of the rational number <x>.
We can express these rules as procedures:
(define (add-rat x y)
(make-rat (+ (* (numer x) (denom y))
(* (numer y) (denom x)))
(* (denom x) (denom y))))
(define (sub-rat x y)
(make-rat (- (* (numer x) (denom y))
(* (numer y) (denom x)))
(* (denom x) (denom y))))
(define (mul-rat x y)
(make-rat (* (numer x) (numer y))
(* (denom x) (denom y))))
(define (div-rat x y)
(make-rat (* (numer x) (denom y))
(* (denom x) (numer y))))
(define (equal-rat? x y)
(= (* (numer x) (denom y))
(* (numer y) (denom x))))
Pairs