blob: 948ec391715fa2b91467fe952fb04bfead9a3b73 (
plain) (
blame)
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
|
;;;; Under Creative Commons Attribution-ShareAlike 4.0
;;;; International. See
;;;; <https://creativecommons.org/licenses/by-sa/4.0/>.
(define-module (net ricketyspace sicp two two)
#:export (make-point
x-point
y-point
make-segment
start-segment
end-segment
midpoint-segment))
;;; Util
(define (avg a b)
(/ (+ a b) 2.0))
;;; Point
(define (make-point x y)
(cons x y))
(define (x-point point)
(car point))
(define (y-point point)
(cdr point))
;;; Segment
(define (make-segment start end)
(list start end))
(define (start-segment segment)
(car segment))
(define (end-segment segment)
(cadr segment))
(define (midpoint-segment segment)
(make-point (avg (x-point (start-segment segment))
(x-point (end-segment segment)))
(avg (y-point (start-segment segment))
(y-point (end-segment segment)))))
|