• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Y_E_T_I

Duvida unzip3

4 mensagens neste tópico

Boas, podem ajudar-me a definir uma função que nao percorra a lista 3 vezes e faça o mesmo que esta?

unzip3 :: [(a,b,c)] -> ([a],[b],[c])
unzip3 l = (map fst l, map snd l, map trd l)
trd :: (a,b,c) -> c
trd (_,_,z) = z

Obrigado mais uma vez

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

f [] = ([],[],[])
f ((x1,x2,x3):t) = let (l1,l2,l3) = f t
                   in ...

Agora é só fazeres o resto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Essa definição que apareceu no exame está incorrecta porque aplica a função fst e snd a um tuplo de 3 elementos, quando na verdade elas são aplicadas a tuplos de 2 elementos.

0

Partilhar esta mensagem


Link 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