blob: 8f15e64212f7fba4fe82a77fcd1ac7063baf35cc (
plain)
1
2
3
4
5
6
7
8
9
10
|
#lang racket
(define (make-rat n d)
(define (sign x)
(cond
((and (< x 0) (< d 0)) (* -1 x))
((and (< 0 x) (< d 0)) (* -1 x))
(else x)))
(let ((g (gcd n d)))
(cons (sign (/ n g)) (abs (/ d g)))))
|