sicp-solutions/chapter-2/ex-2.01.scm

8 lines
231 B
Scheme

#lang sicp
(define (make-rat n d)
(let ((g (gcd n d)))
(cond ((= d 0)
(error "Cannot make-rat with denominator 0"))
((< d 0) (cons (- (/ n g)) (- (/ d g))))
(else (cons (/ n g) (/ d g))))))