SISP 2.1.1: Rational numbers
Published: 2020-07-08T21:41:33.000Z
Exercise 2.1
Here is how you construct rational number:
(define (make-rat n d)
(let ((g (gcd n d))
(sign (if (< d 0) -1 1)))
(cons (/ n g sign) (/ d g sign))))
(define numer car)
(define denom cdr)
(define (print-rat x)
(newline)
(display (numer x))
(display "/")
(display (denom x)))
That's it, change sign of both parts when denominator is negative, you could do that by multiplying or dividing by -1.