SICP 연습문제 2.47 친절한 풀이

문제

그림틀 짜맞추개constructor make-frame은 아래 두 가지 방법으로 구현할 수 있다.

(define (make-frame origin edge1 edge2)
(list origin edge1 edge2))

(define (make-frame origin edge1 edge2)
(cons origin (cons edge1 edge2)))

이 구현을 마무리짓기 위하여 두 방법에 알맞은 고르개selector 연산들을 정의해 보라.

문제로 부터 얻은 것

짜맞추개와 고르개의 정의를 이미 알고 있고, list와 cons의 사용에 익숙하다면 더 배울 것은 없습니다.
이후의 문제들을 풀 때 쓰일 것 같습니다.

문제풀이

a. list를 이용한 구현

(define (make-frame origin edge1 edge2)
(list origin edge1 edge2))

(define (origin-frame f)
(car f))

(define (edge1-frame f)
(cadr f))

(define (edge2-frame f)
(cadr (cdr f)))

b. cons를 이용한 구현

(define (make-frame origin edge1 edge2)
(cons origin (cons edge1 edge2)))

(define (origin-frame f)
(car f))

(define (edge1-frame f)
(cadr f))

(define (edge2-frame f)
(cdr (cdr f)))



읽어주셔서 감사합니다.