Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

brunofmf

Dúvida numa função com "Maybe"!

Mensagens Recomendadas

brunofmf

Boas pessoal!

Tenho aqui mais uma dúvida. :)

A questão é a seguinte :

"Considere o seguinte tipo para representar valores opcionais:

data Maybe a = Nothing | Just a

Defina a função catMaybes :: [Maybe a] -> [a] que extrai todo o conteúdo da lista de entrada."

Eu não estou a perceber muito bem o que é que é pedido na pergunta, mas eu fiz o seguinte :

catMaybes :: [Maybe a] -> [a]
catMaybes Nothing = []
catMaybes Just x = [x]

Se alguém me puder ajudar agradecia!! :)

Abraço!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Betovsky

Estás no caminho certo.

O único ponto que tens de abordar agora é que a função catMaybes recebe uma lista de Maybe em vez de apenas um Maybe.


"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
joxnas

oh bruno..

catMaybes recebe uma  lista de  Maybes, certo?

Onde é que Nothing é uma lista ? :)

além disso, aí so tas a ter em conta listas com um elemento, já reparaste? :)

[Just x] é uma lista com apenas um elemento...

catMaybes :: [Maybe a] -> [a]
catMaybes [] = []
catMaybes (x:xs) = case x of
                                           Nothing -> catMaybes xs
                                           (Just y)->y:(catMaybes xs)

Nao testei mas deve ser assim.

Pelo menos acho que foi assim k fiz no teste...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.