






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







Express ˜oes e Func¸ ˜oes
Linguagem Haskell
Maria Adriana Vidigal de Lima
Faculdade de Computac¸ ˜ao - UFU
Agosto - 2009
Express ˜oes e Func¸ ˜oes
(^1) Express ˜oes e Func¸ ˜oes Linguagem Haskell
A declarac¸ ˜ao dos tipos dos valores de entrada e sa´ıda da func¸ ˜ao ´e definida por:
menor :: Int -> Int -> Int
Estrat ´egia para a definic¸ ˜ao do problema: uso de uma express ˜ao de selec¸ ˜ao menor x y = se x ≤ y ent ˜ao o resultado da express ˜ao ´e x sen ˜ao o resultado da express ˜ao ´e y
Sintaxe de uma express ˜ao de selec¸ ˜ao bidirecional:
if <condi¸c~ao> then
Func¸ ˜ao Menor:
menor :: Int -> Int -> Int menor x y = if x <= y then x else y
Func¸ ˜ao para retornar o maior entre tr ˆes n ´umeros:
maxTres :: Int -> Int -> Int -> Int maxTres x y z | x >= y && x >= z = x | y >= z = y | otherwise = z
Avaliac¸ ˜ao de uma aplicac¸ ˜ao da func¸ ˜ao maxTres
maxTres 4 3 2 ?? 4 >= 3 && 4 >= 2 ?? True && True ?? True 4
Avaliac¸ ˜ao de uma aplicac¸ ˜ao da func¸ ˜ao maxTres
maxTres 6 (4+3) 5 ?? 6 >= (4+3) && 6 >= 5 ?? 6 >= 7 && 6 >= 5 ?? False && True ?? False ?? 7 >= 5 ?? True 7
Neste exemplo avaliamos inicialmente a primeira condic¸ ˜ao, 6 ≥ ( 4 + 3 ) && 6 ≥ 5 que resultou em False; e em seguida avaliamos 7 ≥ 5 que ´e verdadeira. Assim, o resultado ´e 7.
Main> floor (6.5) 6
Main> floor (6.5) + 5. ERROR - Unresolved overloading *** Type : (Fractional a, Integral a) => a *** Expression : floor 6.5 + 5.
Main> fromIntegral(floor (6.6)) + 5.
A func¸ ˜ao fromIntegral converte um inteiro em real.
sin - seno de ˆangulo em radianos cos - coseno tan - tangente asin - arco seno acos - arco coseno atan - arco tangente abs - valor absoluto sqrt - raiz quadrada, valor positivo apenas exp - exponencial base e