이 문제는 프레임의 고르개(selector) 프로시저를 만드는 문제입니다.
짜맞추개(constructor)가 cons와 list로 되어있어 각각 따로 만들어야 합니다.

고르개를 만드는 것이라 쉽게 풀었습니다.^^
참조
해럴드 애빌슨, 김재우 역, <컴퓨터 프로그램의 구조와 해석>, 인사이트, 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)
- SICP Exercise 연습문제 2.50 (0)2008/02/20
- SICP Exercise 연습문제 2.49 (0)2008/02/20
- SICP Exercise 연습문제 2.48 (0)2008/02/20
- SICP Exercise 연습문제 2.47 (0)2008/02/20
- SICP Exercise 연습문제 2.46 (0)2008/02/20
- SICP Exercise 연습문제 2.45 (0)2008/02/20
- SICP Exercise 연습문제 2.44 (0)2008/02/17
글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.







댓글을 달아 주세요