Free Palestine and Lebanon 🍉 Stop the Genocide
Haskell Logo

Programação Funcional

Questão 45: catMaybes

Voltar

Apresente uma definição recursiva da função pré-definida catMaybes :: [Maybe a] -> [a] que coleciona os elementos do tipo a de uma lista.

Exemplo

> catMaybes [Just 1, Just 2, Nothing, Just 3, Nothing, Just 4, Just 5, Nothing]
[1,2,3,4,5]

Resolução

Clica para revelar

catMaybes :: [Maybe a] -> [a]
catMaybes [] = []
catMaybes (Just x:t) = x : catMaybes ms
catMaybes (Nothing:t) = catMaybes ms