;eerst een definitie van de interface
;een constructor make-segment
;     (define (make-segment start end) ...
;twee selectors startpoint en endpoint
;     (define (startpoint segment) ...
;     (define (endpoint segment) ...
;dan nu de definitie van een punt
;de constructor
;     (define (make-point x y) ...
;de selectors
;     (define (abcis point)...
;     (define (ordinaat point)...
;hieronder staat dan de definite
(define (make-point x y)
  (cons x y))
(define (abcis point)
  (car point))
(define (ordinaat point)
  (cdr point))
(define (make-segment start end)
  (cons start end))
(define (startpoint seg)
  (car seg))
(define (endpoint seg)
  (cdr seg))
;het midden van een segment is (x1+(x2-x1)/2,y1+(y2-y1)/2
;eerst definieren van een hulpprocedure
(define (mid getal1 getal2)
  (+ (getal1 (/ (- getal2 getal1) 2))))
(define (midpoint seg)
  (make-point
    (mid (abcis (startpoint seg))
         (abcis (endpoint seg)))
    (mid (ordinaat (startpoint seg))
         (ordinaat (endpoint seg)))))