Questão 29: union
Voltar
Apresente uma definição recursiva da função (pré-definida) union :: Eq a => [a] -> [a] -> [a]
que retorna a lista resultante de acrescentar à primeira lista os elementos da segunda que não ocorrem na primeira.
Exemplo
> union [1,1,2,3,4] [1,5]
[1,1,2,3,4,5]
Resolução
union :: Eq a => [a] -> [a] -> [a]
union l [] = l
union l (h:t)
| h `elem` l = union l t
| otherwise = union (l ++ [h]) t