- Primeira Prova de LP2 -- 04/11/99 ----------------------------------- 1 - (2.0) Para que servem classes em Haskell? De um exemplo de definicao de classe e instancia. 2 - (2.0) faca uma funcao que: a) indique se um numero e' primo. prime :: Int -> Bool b) retorne a lista de todos os primos ate' um dado limite (e.g. todos os primos menores que 1000). primesUpTo :: Int -> [Int] 3 - (2.0) defina uma funcao que dadas duas palavras, indique se uma ocorre dentro da outra. ex: substring "paga" "papagaio" = True ex: substring "bola" "balanca" = False substring :: String -> String 4 - (2.0) defina funcoes para: a) indicar se um inteiro (Int) possui uma raiz quadrada exata (outro Int). hassqroot :: Int -> Bool b) indicar a raiz quadrada de um numero, assumindo que ele tem uma raiz quadrada exata. sqroot :: Int -> Int 5 - (2.0) indique (explique) se as expressões abaixo estão corretas, em caso afirmativo indique seu tipo e, se for adequado, seu resultado. a) map (map (+2)) [[1,2],[3,4]] b) map ((*3) . (+4)) [5,6,7] c) [3] : [4] d) [3] : [] ------------------------------------- informacoes auxiliares: map :: (a -> b) -> [a] -> [b] (.) :: (a -> b) -> (c -> a) -> c -> b