Ir para o conteúdo
nunonunes84

Ajuda com Função

Mensagens Recomendadas

nunonunes84

Boa noite pessoal,

Tenho o seguinte problema,

tenho uma lista que tem vários tuplos, cada tuplo tem 3 elementos, um é uma string, outro é um inteiro e o outro é uma lista (ver exemplo abaixo)

[("aa",8,[(0.0,"e1i1","e1ia1"),(1.2,"e2i2","e2ia2")]),("bb",3,[(0.0,"e2i1","e2ia2"),(0.4,"e2i2","e2ia2")]),("cc",2,[(0.0,"e3i1","e3ia2"),(0.4,"e3i2","e3ia2")])]

Eu agora precisava de uma função que me devolve-se o 1º e 2º elemento de cada tuplo, e o primeiro elemento do último elemento de cada lista (ver abaixo o que a função deve devolver)

[("aa",8,1.2),("bb",3,0.4),("cc",2,0.4)]

Agradeço desde já a possível ajuda.

NN

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Baderous

Obter o 1º e 2º elemento de cada tuplo pode ser feito por pattern-matching. Para obter o 1º elemento do último tuplo da lista de tuplos, basta percorrer a lista até ao fim e aplicar pattern-matching outra vez nesse tuplo. Depois aplicas este procedimento à lista geral e está feito.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pwseo

nunonunes84,

O que tu queres é o primeiro elemento do último tuplo da lista, atenção... Por isso não é bem (_,_,[(c,_,_)]) = c, mas sim algo como funcao (a,b,c) = (a, b, primeiro (ultimo c)).

Agora cria as funções primeiro e ultimo.

E depois aplicas isso à lista de tuplos com uma função de ordem superior.

Edit: o que tu tinhas escrito era aceder ao primeiro elemento do único tuplo de uma lista de tuplos que é o 3º elemento de um tuplo (se releres o enunciado que colocaste, verás que não é o que queres).

Partilhar esta mensagem


Ligação 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 os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.