Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun listaNivoa (lista nivo)
- (cond
- ((null lista) nil)
- ((listp (car lista))(cons (listaNivoa (car lista)(+ 1 nivo))(listaNivoa (cdr lista) nivo)))
- (t (cons nivo (listaNivoa (cdr lista) nivo)))
- ))
- (defun mnozestvo (lista)
- (cond
- ((null lista) nil)
- (t (cons (car (flatten lista))(mnozestvo (remove (car (flatten lista))(cdr (flatten lista))))))
- ))
- (defun flatten (lista)
- (cond
- ((null lista) nil)
- ((listp (car lista))(append (flatten (car lista))(flatten (cdr lista))))
- (t (append (list (car lista))(flatten (cdr lista))))
- )
- )
- (defun nivoa (lista)
- (mnozestvo (listaNivoa lista 0))
- )
- (defun soPodnivoa (lista nivo brojac pomosna)
- (cond
- ((null lista) pomosna)
- ((equal nivo 0) lista)
- ((and (equal nivo (+ 1 brojac))(listp (car lista)))(soPodnivoa (cdr lista) nivo brojac(append (car lista) pomosna)))
- ((listp (car lista))(append (soPodnivoa (car lista) nivo (+ 1 brojac) pomosna)(soPodnivoa (cdr lista) nivo brojac pomosna)))
- (t (soPodnivoa (cdr lista) nivo brojac pomosna))
- )
- )
- (defun bezPodnivoa (lista)
- (cond
- ((null lista) nil)
- ((listp (car lista))(bezPodnivoa (cdr lista)))
- (t (cons (car lista)(bezPodnivoa (cdr lista))))
- )
- )
- (defun oddeleni (lista nivo)
- (bezPodnivoa (soPodnivoa lista nivo 0 nil))
- )
- (defun predfinal (lista nivoa)
- (cond
- ((null nivoa) nil)
- (t (append (list(oddeleni lista (car nivoa)))(predfinal lista (cdr nivoa))))
- )
- )
- (defun final (lista)
- (predfinal lista (nivoa lista))
- )
- (print (final '(1 1 (2 2 (3 3)4 4))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement