(load "writeln.scm") (define matrix (lambda (columns rows) (define myVector (make-vector (+ 1 (* rows columns)) 0)) (vector-set! myVector 0 rows) myVector ) ) (define matrix-ref (lambda (myVector x y) (define rows (vector-ref myVector 0)) (vector-ref myVector (+ (+ (* rows x) y) 1)) ) ) (define matrix-set! (lambda (myVector x y value) (define rows (vector-ref myVector 0)) (vector-set! myVector (+ (+ (* rows x) y) 1) value) ) ) ;============== Unit Tests ====================== ;(define x (matrix 3 2)) ;(matrix-set! x 0 0 "Abby") ;(matrix-set! x 0 1 "Ann") ;(matrix-set! x 1 0 "Bob") ;(matrix-set! x 1 1 "Bill") ;(matrix-set! x 2 0 "Carl") ;(matrix-set! x 2 1 "Clark") ;(matrix-ref x 0 0) ;(matrix-ref x 0 1) ;(matrix-ref x 1 0) ;(matrix-ref x 1 1) ;(matrix-ref x 2 0) ;(matrix-ref x 2 1)