SICP 연습문제 2.2 친절한 풀이
문제
평면에 선분을 긋는 문제를 생각해 보자. 모든 선분은 시작 점과 끝 점의 쌍으로 나타낼 수 있다. 두 점을 짜맞춰 선분을 만들어 내는 make-segment와 선분에서 두 끝 점을 골라내는 start-segment, end-segment를 정의하라. 또한, 점도 x좌표를 나타내는 수와 y 좌표를 나타내는 수를 한 쌍으로 해서 나타낼 수 있다. 그에 따라 make-point와 x-point, y-point를 만들어서 이런 표현 방법을 정의하라. 끝으로 지금까지 만든 짜맞추개와 고르개를 써서 선분을 인자로 받아 가운데 점(선분의 두 끝점을 편균하여 얻어낸 좌표점)을 내놓는 프로시저 midpoint-segment를 정의하라. 그 다음에 아래와 같이 점의 좌표를 찍어내는 프로시저를 써서 결과가 제대로 나오는지 확인해 보라.
(define (print-point p) |
문제로 부터 얻은 것
cons, car, cdr의 사용을 연습할 수 있었습니다.
문제풀이
point와 segment의 짜맞추개와 고르개 프로시저들은 cons, car, cdr을 이용해서 쉽게 표현할 수 있었습니다.
(define (make-point x y) |
(midpoint-segment seg)는 점과 점 사이의 중점을 구하는 프로시저 (midpoint p1 p2)를 이용해서 표현했습니다.
(define (midpoint p1 p2) |
문제에서 제공한 (print-point p)를 이용해서 아래의 테스트를 진행해 보았습니다.
(define point1 (make-point 2 0)) |
읽어주셔서 감사합니다.