I've hit that point in implementing a ray tracer where I need to start implementing structs that have 2D arrays. This is needed for the canvas' pixels and eventually in the matrix implementation. This is straightforward enough in an imperative language, but has been a sticking point in the past.

After some brief research, Racket's mutable vectors seem easy enough to use, and are probably exactly what I need in this case. I want to try to avoid building up thunks in these areas of the code as that can lead to a massive space leak (as I've learned in the past).

If Racket's vectors are anything like those from Haskell, I'll most likely wind up falling back to Python just to finish this project.

Wish me luck.