Moises Posted August 6, 2020 at 07:13 PM Report Share #618994 Posted August 6, 2020 at 07:13 PM (edited) Usando o foldr, defina a função descompactaFold :: [(a, b)] -> ([a], ) que transforma uma lista de pares ordenado em um par ordenado onde o primeiro elemento ´e uma lista dos primeiros componentes dos pares ordenados e o segundo elemento é uma lista dos segundos componentes dos pares ordenados. descompactaFold [ ( 1 , 2 ) , ( 3 , 4 ) , ( 5 , 6 ) , ( 4 , 5 ) ] == ( [ 1 , 3 , 5 , 4 ] , [ 2 , 4 , 6 , 5 ] ) descompactaFold [ ( 1 , 2 ) , ( 3 , 4 ) , ( 5 , 6 ) , ( 4 , 5 ) , ( 5 , 6 ) ] == ( [ 1 , 3 , 5 , 4 , 5 ] , [ 2 , 4 , 6 , 5 , 6 ] ) Código testado, porem não funciona: descompactaFold :: [(a, b)] -> ([a], ) descompactaFold f v [] = v descompactaFold f v (x:xs) = f x (descompactaFold f v xs) Edited August 7, 2020 at 05:22 PM by Moises Moises Link to comment Share on other sites More sharing options...
Baderous Posted September 3, 2020 at 10:08 PM Report Share #619272 Posted September 3, 2020 at 10:08 PM O que te é pedido é uma implementação da função unzip usando foldr. Se consultares o código fonte no link, vais encontrar a solução. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now