I think you want to use a multidimensional float-vector: (let* ((fsize 10) (im (make-float-vector (list fsize 2))) (x 1) (y 1.0) ) (do ((k 0 (+ k 1))) ((>= k fsize)) (set! (im k 0) x) ; this will be turned into a float (set! (im k 1) y) (format #t "~% ~A ~A ~A" k (im k 0) (im k 1)) (set! x (1+ x)) (set! y (1+ y)) ))