Advertisement
Latkoski

transformiraj (FLATTEN) - prv kolokvium 2014 - t1g1

Jan 7th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.29 KB | None | 0 0
  1. б) (40 п) листа во која ќе се содржат само оние елементи од оригиналната листа кои се
  2. појавуваат парен број пати во истата (на сите нивоа):
  3. Пример: (transformiraj-paren '(2 (6 8) (1 2 (2 4) 6) ((1) 2)))(2 6 1)
  4.  
  5.  
  6.  
  7. (defun transformiraj-paren (lista)
  8.     (pomosna (flatten lista) (flatten lista) 0)
  9.     )
  10.  
  11. (defun pomosna (lista pomlista brojac)
  12.     (cond
  13.         ((null lista) nil)
  14.         ((and (null pomlista)(evenp brojac))(cons (car lista)(pomosna (remove (car lista)(cdr lista))(cdr lista) 0)))
  15.         ((and (null pomlista)(oddp brojac))(pomosna (remove (car lista)(cdr lista))(cdr lista) 0))
  16.         ((listp (car lista))(cons (pomosna (car lista) 0 (car lista))(pomosna (cdr lista) 0 (cdr lista))))
  17.         ((equal (car lista)(car pomlista))(pomosna lista (cdr pomlista)(+ 1 brojac)))
  18.         ((not(equal (car lista)(car pomlista)))(pomosna lista (cdr pomlista) brojac))
  19.         )
  20.     )
  21. (defun flatten (lista)
  22.     (cond
  23.         ((null lista) nil)
  24.         ((listp (car lista))(append (flatten (car lista))(flatten (cdr lista))))
  25.         (t (append (list (car lista))(flatten (cdr lista))))
  26.         ))
  27.  
  28.  
  29.  
  30.  
  31. (print (transformiraj-paren '(2 (6 8) (1 2 (2 4) 6) ((1) 2))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement