lispor posted @ Feb 24, 2011 04:56:16 AM in Scheme with tags SICP , 1416 阅读

练习 2.1

练习 2.1:
Define a better version of make-rat that handles both positive and negative arguments. Make-rat
should normalize the sign so that if the rational number is positive, both the numerator and
denominator are positive, and if the rational number is negative, only the numerator is negative.
(define (make-rat n d)
  (let ((g (gcd n d)))
    (cond ((positive? d)
           (cons (/ n g) (/ d g)))
          ((negative? d)
           (cons (- (/ n g)) (- (/ d g))))
           (error "The denom is Zero!")))))


登录 *

loading captcha image...
or Ctrl+Enter