Use a single semicolon to the right of the code to explain a particular line with a short comment. The number of semicolons used roughly corresponds with the length of the comment. Put at least one blank line before and after top-level expressions. This lets users get help while running your program without having to resort to the source code or printed documentation. Accessing the nth element of a vector is faster than finding the nth element of a list, since the latter requires pointer chasing while the former requires simple addition.
Vectors also take up less space than lists.
This makes it clear that you're using an alist. Hash tables are often more efficient. They are often faster, take up less space, and easier to use. Do not use global variables in lieu of parameter passing. When a called function needs to affect the current or future operation of the caller, but it doesn't make sense to accomplish this by returning multiple values.