Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Дефинирај функција removemin која како аргумент прима листа од цели броеви и ја враќа
- листата добиена со отстранување на сите појавувања на минималниот елемент од листата –
- аргумент.
- а) (30 п) Да се претпостави дека листата – аргумент не содржи подлисти.
- Пример: (removemin '(5 1 4 2 3)) (5 4 2 3)
- (removemin '(5 1 4 2 1 3 2 1 1 5)) (5 4 2 3 2 5)
- б) (35 п) Да се земе во предвид дека листата – аргумент може да содржи подлисти.
- Пример: (removemin '(5 ((1) 3) (4) 2 3)) (5 (NIL 3) (4) 2 3)
- (removemin '(5 ((1) 3) (((4)) 2) 1 (3 2 (1 (1)) 5))) (5 (NIL 3) (((4)) 2) (3 2 (NIL) 5))
- (defun removemin (lista original-lista)
- (cond
- ((null lista) nil)
- ((listp (car lista))(cons (removemin (car lista) original-lista)(removemin (cdr lista) original-lista)))
- ((equal (car lista)(najdiNajmal (flatten original-lista)))(removemin (cdr lista) original-lista))
- ((not(equal (car lista)(najdiNajmal(flatten original-lista))))(cons (car lista)(removemin (cdr lista) original-lista)))
- )
- )
- (defun najdiNajmal (lista)
- (cond
- ((null (cdr lista))(car lista))
- ((< (car lista)(cadr lista))(najdiNajmal(cons (car lista)(cddr lista))))
- (t (najdiNajmal (cdr 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)))
- )
- ))
- (print (removemin '(5((1)3)(((4))2)1(3 2(1(1))5))'(5((1)3)(((4))2)1(3 2(1(1))5))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement