Advertisement
Guest User

Untitled

a guest
Jan 10th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. (defun read-input(p)
  3. (cond
  4.    ((null p) nil)
  5.    (T (cons p (read-input (read nil nil))))
  6. )
  7. )
  8.  
  9. (defun readinput(i)
  10.     (cdr (read-input 1))
  11. )
  12.  
  13.  
  14. (defun empty(lista)
  15.     (cond
  16.         ((null lista) T)
  17.         ((atom lista) nil)
  18.         (T (and (empty (car lista)) (empty (cdr lista))))
  19.         )
  20.     )
  21.  
  22. (defun brisi (lista)
  23.     (cond
  24.         ((null lista) nil)
  25.         ((empty (car lista)) (brisi (cdr lista)))
  26.         ((eq (car lista) nil) (brisi (cdr lista)))
  27.         ((listp(car lista)) (cons (brisi (car lista)) (brisi (cdr lista))))
  28.         (T (cons (car lista) (brisi (cdr lista))))
  29.         )
  30.     )
  31.  
  32. ; ^ brisenje nil
  33.  
  34.  
  35. (defun atomi(lista)    ;listata na 1 nivo
  36.     (cond
  37.         ((null lista) nil)
  38.         ((listp (car lista)) (append (atomi (car lista)) (atomi (cdr lista))))
  39.         (T (cons (car lista) (atomi (cdr lista))))
  40.         )
  41.     )
  42.  
  43. (defun broi (lista)  ;broj na elementi vo lista
  44.     (cond
  45.         ((null lista) 0)
  46.         ((atom (car lista)) (+ 1 (broi (cdr lista))))
  47.         (T (+ (broi (car lista)) (broi (cdr lista))))
  48.         )
  49.     )
  50.  
  51.  
  52. (defun izbrisi(lista n1 n2 br)
  53.     (cond
  54.         ((null lista) nil)
  55.         ((listp (car lista))
  56.              (cons (izbrisi (car lista) n1 n2 br) (izbrisi (cdr lista) n1 n2 (+ br (broi (car lista))))))
  57.         ((and (atom (car lista)) (or (< br n1) (> br n2)))
  58.              (cons (car lista) (izbrisi (cdr lista) n1 n2 (+ br 1))))
  59.         (T (izbrisi (cdr lista) n1 n2 (+ br 1)))
  60.         )
  61.     )
  62.  
  63.  
  64.  
  65. (print (brisi(izbrisi '(1 2 (3 (4) 5 (6 (7)))(8 (9 (10 ((11))) 12)) (13 ((14) (15)))) 7 13 1)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement