Questão 27: delete
Voltar
Apresente uma definição recursiva da função (pré-definida) delete :: Eq a => a -> [a] -> [a]
que retorna a lista resultante de remover (a primeira ocorrência de) um dado elemento de uma lista.
Exemplo
> delete 2 [1,2,1,2,3,1,2]
[1,1,2,3,1,2]
> delete 4 [1,3,2,1,3,5]
[1,3,2,1,3,5]
Resolução
delete :: Eq a => a -> [a] -> [a]
delete _ [] = []
delete x (h:t)
| x == h = t
| otherwise = h : delete x t