summaryrefslogtreecommitdiff
path: root/coding-exercises/2/47.rkt
blob: 5e1c56222908f9845a064ea36d2ce8959e34d214 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#lang racket
(require "../../shared/pict.rkt")
(define (make-frame origin edge1 edge2)
  (list origin edge1 edge2))
(define (origin-frame frame)
  (car frame))
(define (edge1-frame frame)
  (cadr frame))
(define (edge2-frame frame)
  (caddr frame))

(define test-frame (make-frame
                     (make-vect 1 2)
                     (make-vect 2 4)
                     (make-vect 3 6)))
((lambda ()
   (newline)
   (display test-frame)
   (newline)
   (display (origin-frame test-frame))
   (display (edge1-frame test-frame))
   (display (edge2-frame test-frame))))

(define (make-frame2 origin edge1 edge2)
  (cons origin (cons edge1 edge2)))
(define (origin-frame2 frame)
  (car frame))
(define (edge1-frame2 frame)
  (cadr frame))
(define (edge2-frame2 frame)
  (cddr frame))

(define test-frame2 (make-frame2
                      (make-vect 1 2)
                      (make-vect 2 4)
                      (make-vect 3 6)))
((lambda ()
   (newline)
   (display test-frame2)
   (newline)
   (display (origin-frame2 test-frame2))
   (display (edge1-frame2 test-frame2))
   (display (edge2-frame2 test-frame2))))