> If that's your defense, party on.
I’m not the author. But that’s one explanation.
This goes back to the old “this is Hacker News” explanation. Some things are just implemented for the heck of it. Some things are just done according to a certain paradigm for the heck of it. Or in order to see how far you can go.
Why not see how far you can go with pure FP before it breaks down? Or you have to make compromises.
And not everything on this site is about “good engineering practices”. (Not that I would file your original, mocking comment under such a professional label, either.)
On a second skim though the submission is more naive than I would have expected from a Racket programmer. Using imperative datastructures like arrays (contiguous chunks of memory) and then copying for every action is not really recommended. You should use purely functional datastructures if you really want to not do destructive updates.