2.2(点,线段,矩形的构造)
;2.2 (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 "}")) (define (make-segment start-segment end-segment) (cons start-segment end-segment)) (define (start-segment l) (car l)) (define (end-segment l) (cdr l)) (define (average x y) (/ (+ x y) 2)) (define (midpoint-segment l) (let ((start (start-segment l)) (end (end-segment l))) (make-point (average (x-point start) (x-point end)) (average (y-point start) (y-point end))))) (print-point (make-point 1 1)) (define start (make-point 1 3)) (define end (make-point 4 3)) (define seg (make-segment start end)) (define mid (midpoint-segment seg)) (print-point mid) (define (perimeter-rectangle sq) (let ((length (length-of-rectangle sq)) (width (width-of-rectangle sq))) (* 2 (+ length width)))) (define (area-rectangle sq) (* (length-of-rectangle sq) (width-of-rectangle sq))) ; (define (make-rectangle length-1 length-2 width-1 width-2) (cons (cons length-1 length-2) (cons width-1 width-2))) ;; selector (define (length-1-rectangle r) (car (car r))) (define (length-2-rectangle r) (cdr (car r))) (define (width-1-rectangle r) (car (cdr r))) (define (width-2-rectangle r) (cdr (cdr r)))