

Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Coleção completa de exercícios resolvidos em haskell
Tipologia: Exercícios
1 / 2
Esta página não é visível na pré-visualização
Não perca as partes importantes!


Segunda lista de exercícios Implementar as tarefas de programação descritas no presente documento, usando a linguagem Haskell.
intercala [1,2,3,4] [100,200] [1, 100, 2, 200,3, 4] intercala::[Int]->[Int]->[Int] intercala x [] = x intercala [] x = x intercala (a:xs) (b:ys) = a: b: intercala xs ys
-- contato = (nome, endereço, telefone, email) type Contato = ([Char],[Char],[Char],[Char]) type Agenda = [Contato] listaContato::Agenda listaContato = [("Ana","SP","1234-1234","[email protected]"), ("Clara","MA","2341-2341","[email protected]"), ("José","DF","3423-3423","[email protected]"), ("Silvio","MG","2134-2134","[email protected]"), ("Marta","SC","4213-4213","[email protected]")] encontraContato::[Char]->Agenda->[Char] encontraContato x [] = "Telefone Desconhecido" encontraContato x ((a,,t,):cs) | x == t = a | otherwise = encontraContato x cs
type MesesAno = [Int] mesesBissexto::MesesAno mesesBissexto = [31,29,31,30,31,30,31,31,30,31,30,31] meses::MesesAno meses = [31,28,31,30,31,30,31,31,30,31,30,31] -– Função que verifica se um ano é bissexto bissexto::Int->Bool bissexto a = if mod a 4 == 0 then True else False -– Função de conversão de data Gregoriana em Juliana converteGregJul::Int->Int->Int->(Int,Int) converteGregJul d m a = if bissexto a then (somaDias d m mesesBissexto,a) else (somaDias d m meses,a) –- Função que soma os dias corridos até uma data somaDias::Int->Int->[Int]->Int somaDias d 1 lista = d somaDias d m (a:xs) = a + somaDias d (m-1) xs