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)

 


Autori[ ZADANIE | AKO ZAČAŤ | RIEŠENIE ]
Posledná aktualizácia 4. 9. 2001
back  home  next