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

RafaelOliveira

Strings para tuplos

Mensagens Recomendadas

RafaelOliveira    0
RafaelOliveira

Boas,

Estou aqui com uma duvida que nao consigo resolver:

Tenho esta função:

stringtuplo :: [[string]] -> [(String)]

stringtuplo [] = []

stringtuplo h:t = (h) : stringtuplo t

contudo da-me um erro. Eu queria que esta função recebesse uma lista de lista de strings e devolve-se uma lista com tuplos de strings.

Exemplo

recebo [["hoje","esta","sol"],["mas","amanha","e","sabado"]] e quero devolver  [("hoje","esta","sol"),("mas","amanha","e","sabado")]

Podem-me ajudar B)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
sl0w    0
sl0w

De certeza que é isso que é suposto fazer? O problema é que cada lista tem um número variável de items, por consequência, cada lista resultará num tuplo com aridade variável, o que acabará numa contradição no sistema de tipos do haskell.

Experimenta no ghci fazer: [(2,3),(3,4,5)], para perceberes o que estou a dizer.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
RafaelOliveira    0
RafaelOliveira

Desculpa mas a escolha do exemplo foi bastante infeliz  :down:. Todas as strings tem a mesma aridade não há diferença entre elas

recebo [["hoje","esta","sol"],["mas","amanha","sabado"]] e quero devolver  [("hoje","esta","sol"),("mas","amanha","sabado")]

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Baderous    31
Baderous

Basta saberes o comprimento de cada lista e de seguida aplicares um map sobre a lista exterior onde, para cada lista interior, geras o tuplo com os elementos dessa lista.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
RafaelOliveira    0
RafaelOliveira

Resolvido  :confused:

tava a pensar de maneira robusta e podia fazer aquilo de maneira bem mais simples OBRIGADO AOS DOIS :biggrin:

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


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade