On the matter of reversing vectors, it also occurs to me that the
destructive variant could be modified to accept a source and a target,
rather than taking elements from and modifying the one input vector.
In fact, I'd like to propose a larger change: change the names, add
start+end arguments to the non-destructive one, and change the
destructive one to accept two vectors. We'd now have:
(VECTOR-REVERSE-COPY <vector> [<start> [<end>]])
Just like the current VECTOR-COPY, but accepts start+end arguments
as well. A reversing analogue of VECTOR-COPY.
(VECTOR-REVERSE-COPY! <target> <tstart> <source> [<sstart> [<send>]])
Copy elements from SOURCE, starting at SSTART and ending at SEND,
in reverse to TARGET, starting at TSTART. A reversing analogue of
VECTOR-COPY!.
Thoughts?