;samenvatting van constructors en selectors die nodig zijn :
; (make-w-vector coordinatenlijst)
; (coordinate nummer wvect)
; nummer loopt van 1 tot n
; (dimension wvect)
;
;eerst de voorstelling met lijsten
(define (make-w-vector coordinatenlijst)
coordinatenlijst)
(define (coordinate nummer wvect)
(define (getelement pos lst)
(if (= pos 1)
(car lst)
(getelement (- pos 1) (cdr lst))))
(if (or (< nummer 1) (> nummer (dimension wvect)))
(error "coordinate error...")
(getelement nummer wvect)))
(define (dimension wvect)
(define (iter acc lst)
(if (null? lst)
acc
(iter (1+ acc) (cdr lst))))
(iter 0 wvect))
;dan nu de definitie met vectoren
(define (make-w-vector2 coordinatenlijst)
(list->vector coordinatenlijst))
(define (dimension2 wvect)
(vector-length wvect))
(define (coordinate2 nummer wvect)
(if (or (< nummer 1) (> nummer (dimension2 wvect)))
(error "coordinate-error")
(vector-ref wvect (- nummer 1))))