(define-record array-rep1 (cells)) (define make-array (lambda (length) (let ((v (make-vector length))) (from-to-do 0 (- length 1) (lambda (i) (vector-set! v i (make-cell 'uninitialized)))) (make-array-rep1 v)))) (define array? array-rep1?) (define array-length (lambda (array) (vector-length (array-rep1->cells array)))) (define array-cell (lambda (array index) (vector-ref (array-rep1->cells array) index)))