(define (make-point x y) (cons x y))
(define (x-point p) (car p))
(define (y-point p) (cdr p))
(define (make-segment start end)
(cons start end)
)
(define (start-segment segment) (car segment))
(define (end-segment segment) (cdr segment))
(define (average x y) (/ (+ x y) 2))
(define (midpoint-segment segment)
(make-point
(average (x-point (start-segment segment)) (x-point (end-segment segment)))
(average (y-point (start-segment segment)) (y-point (end-segment segment)))
)
)
(define (print-point p)
(newline)
(display "(")
(display (x-point p))
(display ", ")
(display (y-point p))
(display ")"))
(define (print-segment segment)
(newline)
(print-point (start-segment segment))
(display " ---- ")
(print-point (end-segment segment))
)
(display "线段:")
(define segment (make-segment (make-point 0 0) (make-point 10 10)))
(print-segment segment)
(newline)
(newline)
(display "线段中点为: ")
(newline)
(print-point (midpoint-segment segment))