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