Blob
1 (defun make-rat (n d)2 (labels ((make-rat-reduce (n d)3 (let ((g (gcd n d)))4 (cons (/ n g) (/ d g)))))5 (cond ((and (< n 0) (< d 0))6 (make-rat-reduce (- n) (- d)))7 ((and (< d 0) (> n 0))8 (make-rat-reduce (- n) (- d)))9 (t (make-rat-reduce n d)))))10 (defun numer (x)11 (car x))12 (defun denom (x)13 (cdr x))