問題2.1

(define (make-rat2 n d)
  (let ((g (gcd (abs n) (abs d))))
	(cond ((or (and (< n 0) (< d 0))
		   (and (>= n 0) (< d 0)))
	      (cons (/ (* -1 n) g) (/ (* -1 d) g)))
	      (else
	        (cons (/ n g) (/ d g))))))

ま、何も考えずに言われたことをそのままインプリしたって感じ。何か汚いぞ。