InvertedCloud Posted September 25, 2019 at 01:38 PM Report Share #616230 Posted September 25, 2019 at 01:38 PM Boas, Estou ultimamente a aprender programação funcional e deparei-me com um exercício que diz o seguinte (no que suponho seja terminologia académica): mostre que uma lista em compreensão com geradores duplos pode ser descrita usando geradores simples. Sugestão: use a função concat e uma compreensão dentro de outra. É dado o exemplo de [(x, y) | x <- [1, 2, 3], y <- [4, 5, 6] ] o meu problema aqui é, como raio é que se encaixa sintacticamente uma lista por compreensão aninhada dentro de outra? o exemplo descreve uma lista de tuplos (x, y) com aqueles geradores para cada variável. Concat recebe uma lista de listas. Perdi-me algures no meio, suponho. Não tenho qualquer exemplo de tal situação, estou a seguir o livro "Learn you a Haskell for great good" e paralelamente a frequentar uma cadeira de programação funcional com haskell que me fornece outro tipo de exercicios, admitidamente mais fáceis. Alguma ideia? (Edit: movido de outro fórum para aqui) Link to comment Share on other sites More sharing options...
pdfrod Posted September 25, 2019 at 08:26 PM Report Share #616231 Posted September 25, 2019 at 08:26 PM (edited) Vou-te dar uma pista: visto que o concat serve para converter uma lista de listas numa lista simples, pode ser usado para converter uma lista com este aspecto: [[(1, 4), (1, 5), (1, 6)], [(2, 4), (2, 5), (2, 6)], [(3, 4), (3, 5), (3, 6)]] numa lista simples e que será o resultado final. Agora é descobrir como gerar essa lista de listas. Não tenho a certeza o que querem dizer com "compreensão dentro de outra", mas penso que o espírito do exercício seja simplesmente arranjar uma forma alternativa ao gerador duplo mostrado no exemplo. Edited September 25, 2019 at 08:29 PM by pdfrod 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