이 문제는 프레임의 고르개(selector) 프로시저를 만드는 문제입니다.

짜맞추개(constructor)가 cons와 list로 되어있어 각각 따로 만들어야 합니다.

 

c15

고르개를 만드는 것이라 쉽게 풀었습니다.^^

 

 

참조

해럴드 애빌슨, 김재우 역, <컴퓨터 프로그램의 구조와 해석>, 인사이트, 2007, pp. 176

 

 

; vector
(define (make-vect x y) (cons x y))
(define (xcor-vect v) (car v))
(define (ycor-vect v) (cdr v))

; make-frmae1
(define (make-frame1 origin edge1 edge2)
  (list origin edge1 edge2))

; answer
(define (origin-frame1 fr) (car fr))
(define (edge1-frame1 fr) (cadr fr))
(define (edge2-frame1 fr) (cadr (cdr fr)))

; execute
(define fr1 (make-frame1 (make-vect 1 2) (make-vect 3 4) (make-vect 5 6)))
(origin-frame1 fr1)
(edge1-frame1 fr1)
(edge2-frame1 fr1)
(newline)

; make-frmae2
(define (make-frame2 origin edge1 edge2)
  (cons origin (cons edge1 edge2)))

; answer
(define (origin-frame2 fr) (car fr))
(define (edge1-frame2 fr) (cadr fr))
(define (edge2-frame2 fr) (cdr (cdr fr)))
; execute
(define fr2 (make-frame2 (make-vect 1 2) (make-vect 3 4) (make-vect 5 6)))
(origin-frame2 fr2)
(edge1-frame2 fr2)
(edge2-frame2 fr2)

크리에이티브 커먼즈 라이선스
Creative Commons License

글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.

트랙백 주소 :: http://nosyu.pe.kr/trackback/1360

댓글을 달아 주세요

[로그인][오픈아이디란?]