



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 / 6
Esta página não é visível na pré-visualização
Não perca as partes importantes!




b) maior : recebe uma lista de números e retorna o maior. c) conta-ocorrencias : recebe um elemento e uma lista qualquer e retorna o número de ocorrências do elemento na lista. d) unica-ocorrencia : recebe um elemento e uma lista e verifica se existe uma única ocorrência do elemento na lista. ex.: unica-ocorrencia 2 [1,2,3,2] = False unica-ocorrencia 2 [3,1] = False unica-ocorrencia 2 [2] = True e) maiores-que : recebe um número e uma lista de números e retorna uma lista com os números que são maiores do que o valor informado. ex.: maiores-que 10 [4 6 30 3 15 3 10 7] ==> [30 15] f) concatena : recebe duas listas quaisquer e retorna uma terceira lista com os elementos da primeira no início e os elementos da segunda no fim. ex.: concatena [] [] ==> [] concatena [1 2] [3 4] ==> [1 2 3 4] g) duplica : recebe uma lista e retorna uma nova lista contendo a duplicação dos elementos da lista original. ex: duplica [1, 2, 3] ==> [1,1,2,2,3,3]
-- Exercício 5 -- Retorna o menor entre dois números menor::Int->Int->Int menor x y = if x < y then x else y -- Exercício 6 –- Retorna o menor entre três números menor3::Int->Int->Int->Int menor3 x y z | x > y = if y > z then z else y | otherwise = if x > z then z else x -- Exercício 7 -- Fatorial de um número natural fatorial::Int->Int fatorial 0 = 1 fatorial n = n * fatorial (n-1) -- Exercício 8.a
-- Exercício 8.c –- Conta o número de ocorrências de um número na lista contaOc::Int->[Int]->Int contaOc a [] = 0 contaOc a (x:xs) | x == a = 1 + contaOc a xs | otherwise = contaOc a xs -- Exercício 8.d –- Verifica se o elemento é único na lista -- Versão 0, utilizando a função "contaOC" do exercicio 8.c: unicaOcorrencia::Int -> [Int] -> Bool unicaOcorrencia a lista = if (contaOc a lista == 1) then True else False -- Versao 1, utilizando uma função "pertence": unicaOc::Int -> [Int] -> Bool unicaOc a [] = False unicaOc a (x:xs) | x == a = if (pertence a xs) then False else True | otherwise = unicaOc a xs pertence :: Int -> [Int] -> Bool pertence x [] = False pertence x (a:t) | (x == a) = True | otherwise = pertence x t -- Versão 2, recursiva unicaOcor::Int -> [Int] -> Bool unicaOcor a [] = False unicaOcor a (x:xs) | x == a = if (unicaOcor a xs) then False else True | otherwise = unicaOcor a xs