Advertisement
jovanovski

ВИ Транформира (флипни места)

May 9th, 2013
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.19 KB | None | 0 0
  1. (defun izvadizagradi (lista noval)
  2.   (if (null lista)
  3.     noval
  4.     (if (atom (car lista))
  5.     (izvadizagradi (cdr lista) (append noval (list (car lista))))
  6.     (izvadizagradi (cdr lista) (append noval (izvadizagradi (car lista) '())))
  7.     )
  8.     )
  9. )
  10.  
  11. (defun promena (lista noval)
  12.   (if (< (length lista) 2)
  13.     (append noval lista)
  14.     (promena (cddr lista) (append (append noval (list (cadr lista))) (list (car lista))))
  15.     )
  16. )
  17.  
  18. (defun zagrada (lista noval onaa)
  19.   (if (null lista)
  20.     noval
  21.     (if (atom (car lista))
  22.       (zagrada (cdr lista) (append noval (list(car onaa))) (cdr onaa))
  23.       (zagrada (cdr lista) (append noval (list(zagrada (car lista) '() onaa)) ) (izbrisi onaa (izbroi (car lista) 0)))
  24.       )
  25.     )
  26.   )
  27.  
  28. (defun izbrisi (lista n)
  29.   (if (eq n 0)
  30.     lista
  31.     (izbrisi (cdr lista) (- n 1))
  32.     )
  33.   )
  34.  
  35. (defun izbroi (lista n)
  36.   (if (null lista)
  37.     n
  38.     (if (atom (car lista))
  39.       (izbroi (cdr lista) (+ n 1))
  40.       (izbroi (cdr lista) (+ n (izbroi (car lista) 0)))
  41.       )
  42.     )
  43.   )
  44.  
  45. (defun transformiraj (lista)
  46.   (zagrada lista '() (promena (izvadizagradi lista '()) '()))
  47.   )
  48.  
  49. (transformiraj '(2 (5 (4 7 (10 (9) 5 9) 4) (8 (11)) 18) 6))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement