


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
haskell é uma linguagem funcional e este arquivo serve como exemplo
Tipologia: Exercícios
1 / 4
Esta página não é visível na pré-visualização
Não perca as partes importantes!



{-# OPTIONS_GHC -Wno-incomplete-patterns #-} import Data.Char logMes a = tira a main = do a <- getLine let result = logMes a print result par s = pares s 0 impar s = impares s 0 resul s = (par s, impar s) pares :: String -> Int -> String pares [] x = [] pares (a:as) x | mod x 2 == 0 = [a]++ pares as (x+1) | otherwise = pares as (x+1) impares :: String -> Int -> String impares [] x = [] impares (a:as) x | mod x 2 > 0 = [a]++ impares as (x+1) | otherwise = impares as (x+1) tira :: String -> String tira [] = [] tira (s:as) | s == '[' || s == ']' || s == '(' || s == ')' || s == ',' || s == '"' || s == ' ' || ord s == 39 || ord s > 60 = tira as | otherwise = [s] ++ tira as mec a = tira (head (words a)) {- main = do a <- getLine b <- getLine let result = impares (tira b ) 0 print result main = do a <- getLine b <- getLine c <- getChar let result = comf a c 0 (read b) print result par s = pares (words s) 0 impar s = impares (words s) 0 resul s = (par s, impar s) pares :: [String] -> Int -> [String]
pares [] x = [] pares (a:as) x | mod x 2 == 0 = [a]++ pares as (x+1) | otherwise = pares as (x+1) impares :: [String] -> Int -> [String] impares [] x = [] impares (a:as) x | mod x 2 > 0 = [a]++ impares as (x+1) | otherwise = impares as (x+1) main = do a <- getLine let result = resul a print result parseInput str = let [n, s] = words str in (read n, s) main :: IO() main = interact $ uncurry paraDireita. parseInput executa :: [(Comando, Valor)] -> Int executa [] = 0 executa (a:as) | fst a == "Inicio" = 0 + executa as | fst a == "Multiplica" = snd a * executa as | fst a == "Soma" = snd a + executa as | fst a == "Subtrai" = - snd a
gg :: (String,Char,Int) -> Int gg ([],c,b) = - gg (a:[],c,b) = - gg ((a:as),c,b) | a == c = gg ( as, c, b + 1) | a /= c = gg( as, c, b*0) | as == [] = b | otherwise = gg( as, c, b) comp :: String -> Char -> Int comp (a:as) caracter | a == caracter = 1 + comp as caracter | a /= caracter = comp as caracter | otherwise = 0 isReplica :: String -> Int -> Char -> Bool isReplica a b c = b == comp a c main = do a <- getLine b <- getLine c <- getChar let result = isReplica a (read b) c print result -}