(define-record ve-cell (vector index)) ; ve = vector element (define make-cell (lambda (val) (make-ve-cell (vector val) 0))) (define cell? ve-cell?) (define cell-ref (lambda (cell) (vector-ref (ve-cell->vector cell) (ve-cell->index cell)))) (define cell-set! (lambda (cell val) (vector-set! (ve-cell->vector cell) (ve-cell->index cell) val))) (define-record array-rep2 (elements)) (define make-array (lambda (length) (make-array-rep2 (make-vector length)))) (define array? array-rep2?) (define array-length (lambda (array) (vector-length (array-rep2->elements array)))) (define array-cell (lambda (array index) (make-ve-cell (array-rep2->elements array) index)))