Advertisement
Guest User

Ejercicio parcial

a guest
May 14th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.06 KB | None | 0 0
  1. (defun ultimo-elem-es-atomo (lista)
  2.     (not (null(atom (car(nthcdr (-(length lista)1) lista)))))
  3. )
  4.  
  5. (defun get-ultimo-elem (lista)
  6.     (car(nthcdr (-(length lista)1) lista))
  7. )
  8.  
  9. (defun lista-sin-ultimo-elem (lista)
  10.     (if (null(cdr lista)) nil
  11.         (cons (car lista) (lista-sin-ultimo-elem(cdr lista)))
  12.     )
  13. )
  14.  
  15. (defun bajar-nivel (lista)
  16.     (if (null lista) nil
  17.         (if (listp (car lista))
  18.             (if (ultimo-elem-es-atomo (car lista))
  19.                 (cons(bajar-nivel(lista-sin-ultimo-elem(car lista)))
  20.                 (cons(get-ultimo-elem(car lista))
  21.                 (bajar-nivel (cdr lista))))
  22.                 (cons (bajar-nivel(car lista))(bajar-nivel (cdr lista)))
  23.             )
  24.            
  25.             (cons (car lista)(bajar-nivel (cdr lista)))
  26.         )
  27.     )
  28. )
  29.  
  30. (defun iniciar (lista)
  31.     (if (null lista) nil
  32.     (if (ultimo-elem-es-atomo lista)
  33.         (bajar-nivel (lista-sin-ultimo-elem lista))
  34.         (bajar-nivel lista)
  35.     )
  36.     )
  37. )
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44. (setq lista1 '(1 2 (3 4) 5))
  45. (setq lista2 '(a z (b m u(c d e) f) g h((r (o j))) k))
  46. (setq lista3 '(3(a b)4 5 6((b c)7 8)9))
  47. (setq lista4 '(1 2 3))
  48. (setq lista6 '(1 2(3 4)(5 6)7))
  49. (setq lista7 '(1 2(3 4)(5 6)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement