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

Baderous

Dúvida básica lista por compreensão

3 mensagens neste tópico

Tenho aqui um exercício em que tenho de escrever a seguinte função sem usar listas por compreensão:

func l = [(x,y) | x <- l , y <- l]

Não estou a conseguir fazer esta coisa simples. Tenho de usar acumuladores?

É suposto isto resolver-se sem usar funções de ordem superior.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Basicamente, precisas de percorrer duas vezes a lista.

func l=faux1 l l

faux1 [] _ = []
faux1 (h:t) l=(faux2 h l)++(faux1 t l)

faux2 _ []=[]
faux2 x (h:t)=(x,h):(faux2 x t)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agora que olho para a solução até parece fácil, mas não estava a conseguir. Thanks!

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