먼저 부호를 가져오는 방법은 절대값을 구한 후 해당 값을 나누어서 얻도록 했다.
해당 부호값은 다음과 같이 얻을 수 있다.
따라서 준 식은 다음과 같이 표현할 수 있다.

해당 부호값은 다음과 같이 얻을 수 있다.
(* (/ (abs n) n)
(/ (abs d) d))
따라서 준 식은 다음과 같이 표현할 수 있다.
(define (make-rat n d)let이 좀 많이 들어갔는데.. 일단 답이 나오는데 만족함..
(let ((abs-n (abs n))
(abs-d (abs d)))
(let ((g (gcd abs-n abs-d))
(sign (* (/ abs-n n) (/ abs-d d))))
(cons (* (/ abs-n g) sign)
(/ abs-d g)))))

댓글 없음:
댓글 쓰기