diff options
Diffstat (limited to 'coding-exercises/2/2.rkt')
| -rw-r--r-- | coding-exercises/2/2.rkt | 42 |
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) |
