Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 2. Дефинирај функција transformiraj-neparen, која прима 1 аргумент – целобројна листа и враќа:
- а) (25 п) листа во која ќе се содржат само оние елементи од оригиналната листа кои се појавуваат непарен број пати во истата (на прво ниво):
- Пример: (transformiraj-neparen '(1 5 3 5 4 1 5 8 3 1 4)) (1 5 8)
- б) (40 п) листа во која ќе се содржат само оние елементи од оригиналната листа кои се појавуваат непарен број пати во истата (на сите нивоа):
- Пример: (transformiraj-neparen '(2 (6 8) (1 4 2 (2 1) 6) ((1) 4))) (2 8 1)
- (defun transformiraj-neparen-pomosna (lista brojac pomosna-lista)
- (cond
- ((null lista) nil)
- ((and (null pomosna-lista)(eq (mod brojac 2) 0))(transformiraj-neparen-pomosna (remove (car lista) (flatten (cdr lista))) 0 (cdr lista)))
- ((and (null pomosna-lista)(eq (mod brojac 2) 1))(cons (car lista)(transformiraj-neparen-pomosna (remove (car lista)(flatten (cdr lista))) 0 (cdr lista))))
- ((eq (car lista)(car pomosna-lista))(transformiraj-neparen-pomosna lista (+ 1 brojac) (cdr pomosna-lista)))
- ((not (eq (car lista)(car pomosna-lista)))(transformiraj-neparen-pomosna lista brojac (cdr pomosna-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 transformiraj-neparen (lista)
- (transformiraj-neparen-pomosna lista 0 lista)
- )
- (print (transformiraj-neparen '(2 (6 8) (1 4 2 (2 1) 6) ((1) 4))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement