Vhodným riešením je rekurzívne prechádzať zoznam vždy po 2 prvkoch a tieto vymieňať. Ak má zoznam nepárny počet prvkov, posledný prvok ostane tam kde bol.
(defun prehod (zoz)
(cond ((null zoz) NIL)
((null (rest zoz)) zoz)
(T (cons (first (rest zoz)) (cons (first zoz) (prehod (rest (rest zoz))))))
)
)
; Príklady:
(prehod '(1 2 3 4)) ; -> (2 1 4 3)
(prehod '(1 2 3 4 5)) ; -> (2 1 4 3 5)