Seeing how this guy comments about loop, be a little careful when using it. There is no formal standard on how to implement loop, so what you write might result in different answers depending on what Common Lisp implementation you use. Evaluate these loop-expressions and see what happens (from ANSI Common Lisp by PG):
(loop for y = 0 then z
for x from 1 to 5
sum 1 into z
finally (return (values y z)))
and then evaluate this:
(loop for x from 1 to 5
for y = 0 then z
sum 1 into z
finally (return (values y z)))