Možným riešením je implementovať funkciu vracajúcu zoznam bez posledného prvku a v hlavnej funkcií zostaviť výsledný zoznam pomocou nej a funkcií append a last.


; Vráti zoznam bez posledného prvku.
(defun except (zoz)
 (cond ((null zoz) NIL)
       ((null (rest zoz)) NIL)
       (T (cons (first zoz) (except (rest zoz))))
 )
)

; Hlavná funkcia.
(defun rotp (zoz)
 (append (last zoz) (except zoz))
)

; Príklady:
(rotp '(1 2 3 4 5)) ; -> (5 1 2 3 4)
(rotp '(1 2)) ; -> (2 1)
(rotp '(7))   ; -> (7)

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