It seems a list in lisp can use `push` to add another element to it, while an array can use `vector-push-extend` to do the same thing (if you use `:adjustable t`, except add an element at the end. Similarly, `pop` removes the first item in a list, while `vector-pop` removes the last item from a vector.

So what is the difference between a list and a vector in lisp?