summaryrefslogtreecommitdiff
path: root/coding-exercises/2/2.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'coding-exercises/2/2.rkt')
-rw-r--r--coding-exercises/2/2.rkt42
1 files changed, 42 insertions, 0 deletions
diff --git a/coding-exercises/2/2.rkt b/coding-exercises/2/2.rkt
new file mode 100644
index 0000000..814c999
--- /dev/null
+++ b/coding-exercises/2/2.rkt
@@ -0,0 +1,42 @@
+#lang racket
+(require "../../shared/chapter1.rkt")
+
+(define (make-segment p1 p2)
+ (cons p1 p2))
+
+(define (start-segment s)
+ (car s))
+
+(define (end-segment s)
+ (cdr s))
+
+(define (make-point x y)
+ (cons x y))
+
+(define (x-point p)
+ (car p))
+
+(define (y-point p)
+ (cdr p))
+
+(define (print-point p)
+ (newline)
+ (display "(")
+ (display (x-point p))
+ (display ",")
+ (display (y-point p))
+ (display ")"))
+
+(print-point (make-point 36 7))
+
+(define (midpoint-segment s)
+ (make-point
+ (average (x-point (start-segment s)) (x-point (end-segment s)))
+ (average (y-point (start-segment s)) (y-point (end-segment s)))))
+
+(define start (make-point 36 7))
+(define end (make-point 36 9))
+(define line (make-segment start end))
+
+(define mid (midpoint-segment line))
+(print-point mid)