sicp/2_2.sch

29 lines
675 B
Scheme

(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 s) (car s))
(define (end-segment s) (cdr s))
(define (mid-point s)
(let ((start-x (x-point (start-segment s)))
(start-y (y-point (start-segment s)))
(end-x (x-point (end-segment s)))
(end-y (y-point (end-segment s))))
(make-point
(average start-x end-x)
(average start-y end-y))))
(define (print-point p)
(display "(")
(display (x-point p))
(display ",")
(display (y-point p))
(display ")")
(newline))
(define (average x y)
(/ (+ x y) 2.0))