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

casdio

Subtrair elementos em listas (recursividade)

2 mensagens neste tópico

Boas.

Estou a tentar resolver a pergunta 6 desta ficha:

http://www.di.uminho.pt/~mjf/PFei/2008-09/page10/files/pf-aula3.pdf

A minha ideia é isto

--6)
tempoTotal::[(Time,Time)]->Time
tempoTotal [] = (0,0)
tempoTotal (x:xs) = minhora (ajuda x + ajuda xs)

ajuda::[(Time,Time)]->Int
ajuda (((h1,m1),(h2,m2)):t) = ((h2-h1)*60)+(m2-m1)

Mas não estou a conseguir ver como é que vou subtrair os valores para o resto da lista.

Alguém sabe ajudar sff?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

EDIT:

Está a fazer isso mal... Só usas a função ajuda para a cabeça da lista. Para o resto, chamas recursivamente a função tempoTotal.

Aconselho-te a devolveres um inteiro na função tempoTotal (ou então cria outra função intermédia, mas a função recursiva deve trabalhar com inteiros, e só convertes o valor no final).

A função ajuda só devia receber um par e não uma lista (a menos que queiras aplicar a recursividade já nesta função, o que até nem era mau de todo).

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