Код Ревью

Сравни свои решения

    #| BEGIN (Введите свое решение) |#
(define (negative? a) (< a 0))

(define (abs a)
  (if (< a 0) (- a) a))

(define (gcd a b)
  (if (= b 0)
      a
      (gcd b (remainder a b))))

(define (make-rat n d)
  (let ((g (gcd n d))
        (isNegative (negative? (/ n d))))
    (cons (if isNegative
            (- (abs (/ n g)))
            (abs (/ n g))) 
          (abs (/ d g)))))
#| END |#