Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

saulokada

LISP - Remover todas ocorrencias de um elemento na lista

Recommended Posts

Estou utilizando XLISP...

o exercicio é o seguinte:

- Escreva um procedimento que, dados um elemento e uma lista, apaga todas as ocorrências desse elemento na lista.

 

A minha resposta foi a seguinte:

(defun apaga (elemento lista)
  (cond
	((null lista) nil)
	((equal elemento (car lista)) (cdr lista))
	(t (apaga(elemento (cdr lista))))))
mas nao esta dando certo.

alguem poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe a função remove, que já faz isto.

(remove elemento lista)

mas se quiser fazer na unha:

 

 

(defun apaga (elemento lista temp)
	(cond
		((null lista) temp)
		((equal elemento (car lista)) (apaga elemento (cdr lista) temp))
		(T (apaga elemento (cdr lista) (cons (car lista) temp)))
	)
)
(defun apagarElemento (elemento lista)
	(apaga elemento lista '())
)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.