Možným riešením je, prechádzať s-vyraz a jeho jednotlivé časti (first a rest) spájať do jedného zoznamu pomocou append.
(defun zrusz (sv)
(cond ((NULL sv) NIL)
((ATOM sv) (cons sv NIL))
(T (append (zrusz (first sv)) (zrusz (rest sv))))
)
)
; Príklady:
(zrusz '(1 2)) ; -> (1 2)
(zrusz '(1 (2 ((3)) 4))) ; -> (1 2 3 4)