Exercise 2.3
Imports: [[Exercise 2.02]] make-point x-point y-point
(define (perimeter rect)
(* 2 (+ (width-rect rect) (height-rect rect))))
(define (area rect)
(* (width-rect rect) (height-rect rect)))
First representation: two corners.
(define make-rect cons)
(define p1-rect car)
(define p2-rect cdr)
(define (width-rect rect)
(abs (- (x-point (p1-rect rect))
(x-point (p2-rect rect)))))
(define (height-rect rect)
(abs (- (y-point (p1-rect rect))
(y-point (p2-rect rect)))))
(define rect (make-rect (make-point 1 2) (make-point 6 5)))
(perimeter rect) => 16
(area rect) => 15
Second representation: corner and dimensions.