(define make-table (lambda (r c) (do ((T (make-vector r)) (i 0 (+ i 1))) ((= i r) T) (vector-set! T i (make-vector c))))) (define table-ref (lambda (T r c) (vector-ref (vector-ref T r) c))) (define table-set! (lambda (T r c val) (vector-set! (vector-ref T r) c val))) (define table-height (lambda (T) (vector-length T))) (define table-width (lambda (T) (vector-length (vector-ref T 0)))) (define table-fill! (lambda (T val) (do ((i 0 (+ i 1))) ((= i (table-height T))) (do ((j 0 (+ j 1))) ((= j (table-width T))) (table-set! T i j val))))) (define display-table (lambda (T) (do ((i 0 (+ i 1))) ((= i (table-height T))) (do ((j 0 (+ j 1))) ((= j (table-width T))) (display (vector-ref (vector-ref T i) j)) (display " ")) (newline)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;(define T (make-table 3 5)) ;(table-height T) ;(table-width T) ;(table-fill! T #f) ;(display-table T) ;(table-set! T 1 3 4) ;(table-ref T 0 2) ;(table-ref T 1 3) ;(display-table T)