I have created a nice little routine:
(defun unzip (seq)
"Takes an even-length list and breaks it apart by evens/odd index"
(let ((oddresult '())
(evenresult '()))
(loop for n from 0 to (- (length seq) 1) do
(if (oddp n)
(push (nth n seq) oddresult)
(push (nth n seq) evenresult)))
(list (reverse oddresult) (reverse evenresult))))
And to use it:
CL-USER> (unzip '(1 2 3 4 5 6))
((2 4 6) (1 3 5))
However, I am keenly aware of my ability to writebotch C++ in any language, and would like some analysis of my unzip for good Common Lisp style.