vincenz is right : Lua deals with vectors this way. Actually, it doesn't even bother to ask you whether you are using it as a vector or as a hash table. Each table is implemented as both a vector (for numeric keys) and a regular hash table (for other keys).
This way, you've got performance (and lua is one of the fastest "scripting" languages) with a really minimal language.
I think that would be a good approach for Arc too : don't bother with vectors, hash tables are enough :)